From 8e9ef8bd5254eeddd0aa03d0c4f6f2de70fb566c Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Wed, 16 Nov 2011 17:41:33 +0100
Subject: [PATCH] Version 2011-11-16 17:41

---
 src/mio/parser.py | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/src/mio/parser.py b/src/mio/parser.py
index b71d07d..111b8c3 100755
--- a/src/mio/parser.py
+++ b/src/mio/parser.py
@@ -2,7 +2,7 @@ import os
 import stat
 import sys
 import time
-import xml.sax
+import xml.parsers.expat
 import traceback
 import urlparse
 import urllib2
@@ -451,7 +451,7 @@ class Comment:
     def __repr__(self):
         return self._xml()
 
-class Parser(xml.sax.ContentHandler):
+class Parser:
     def __init__(self, url, include_comments=False):
         """Parse the given url inti .tree
 
@@ -463,31 +463,30 @@ class Parser(xml.sax.ContentHandler):
         self.tree = None
         
         # Create a xml parser
-        import xml.parsers.expat
         self.parser = xml.parsers.expat.ParserCreate()
         self.parser.StartElementHandler = self.startElement
         self.parser.EndElementHandler = self.endElement
         self.parser.CharacterDataHandler = self.characters
         self.parser.CommentHandler = self.comment
-        """parser = xml.sax.make_parser()
-        parser.setFeature(xml.sax.handler.feature_namespaces, 0)
-        parser.setContentHandler(self)
-        try:
-            parser.setFeature(xml.sax.handler.feature_external_ges, 0)
-        except:
-            pass
-        """
 
         # Parse the url
         self.current = [ self ]
         (scheme, host, path, param, query, frag) = urlparse.urlparse(url)
-        if not scheme:
-            self.parser.Parse(open(url).read())
+        try:
+            if not scheme:
+                self.parser.Parse(open(url).read())
+                pass
+            else:
+                self.parser.Parse(urllib2.urlopen(url).read())
+                pass
             pass
-        else:
-            self.parser.Parse(urllib2.urlopen(url).read())
+        except xml.parsers.expat.ExpatError:
+            reason = xml.parsers.expat.ErrorString(self.parser.ErrorCode)
+            line = self.parser.ErrorLineNumber
+            column = self.parser.ErrorColumnNumber
+            raise Exception("%s at line %d, column %d in %s" %
+                            (reason, line, column, url))
             pass
-      
         # Set the mtime
         mtime = 0
         try:
-- 
GitLab