@@ -24,42 +24,28 @@ class VersionConverter(object):
2424 'dtype' : 'type'
2525 }
2626
27- _error_strings = {
28- '<B0>' : ''
29- }
30-
3127 def __init__ (self , filename ):
3228 self .filename = filename
3329 self .conversion_log = []
3430
3531 def _parse_xml (self ):
3632 """
37- _parse_xml checks whether the provided file object can be parsed,
38- fixes known mismatching elements and returns the parsed lxml tree.
33+ _parse_xml checks whether the provided file object can be parsed
34+ and returns the parsed lxml tree.
3935 :return: ElementTree
4036 """
37+ # Make pretty print available by resetting format
38+ parser = ET .XMLParser (remove_blank_text = True )
4139 if isinstance (self .filename , io .StringIO ):
4240 doc = self .filename .getvalue ()
41+ tree = ET .ElementTree (ET .fromstring (doc , parser ))
42+
4343 elif os .path .exists (self .filename ) and os .path .getsize (self .filename ) > 0 :
44- with open (self .filename , 'r+' ) as file :
45- doc = file .read ()
44+ tree = ET .parse (self .filename , parser )
4645 else :
4746 msg = "Cannot parse provided file object '%s'." % self .filename
4847 raise Exception (msg )
4948
50- # Fix known mismatching elements
51- for elem , val in self ._error_strings .items ():
52- if elem in doc :
53- doc = doc .replace (elem , val )
54-
55- # Make sure encoding is present for the xml parser
56- if sys .version_info .major > 2 :
57- doc = doc .encode ('utf-8' )
58-
59- # Make pretty print available by resetting format
60- parser = ET .XMLParser (remove_blank_text = True )
61- tree = ET .ElementTree (ET .fromstring (doc , parser ))
62-
6349 return tree
6450
6551 def _parse_json (self ):
0 commit comments