# @defreturn Element or None
def find(self, path):
+ if ElementPath.find(self, path) == None:
+ return ElementPath.find(self, path.encode())
return ElementPath.find(self, path)
##
# @defreturn string or None
def get(self, key, default=None):
- return self.attrib.get(key, default)
+ res = self.attrib.get(key, default)
+ if not res:
+ res = self.attrib.get(key.encode(), default)
+ if isinstance(res, bytes):
+ return res.decode()
+ else:
+ return res
##
# Sets an element attribute.
# @defreturn list of strings
def keys(self):
- return self.attrib.keys()
-
+ res = []
+ for key in self.attrib.keys():
+ if isinstance(key, bytes):
+ res.append(key.decode())
+ else:
+ res.append(key)
+ return res
+
##
# Gets element attributes, as a sequence. The attributes are
# returned in an arbitrary order.
def __init__(self, source, events=None):
if not hasattr(source, "read"):
+ # OP TEST
+ print("iterparse.__init__ source = %s" % source)
source = open(source, "rb")
self._file = source
self._events = []
def _flush(self):
if self._data:
if self._last is not None:
- text = string.join(self._data, "")
+ text = ""
+ for item in self._data:
+ try:
+ text += item
+ except:
+ text += item.decode()
if self._tail:
assert self._last.tail is None, "internal error (tail)"
self._last.tail = text
parser.StartElementHandler = self._start_list
except AttributeError:
pass
- encoding = None
- if not parser.returns_unicode:
- encoding = "utf-8"
+ #encoding = None
+ #if not parser.returns_unicode:
+ # encoding = "utf-8"
# target.xml(encoding, None)
self._doctype = None
self.entity = {}
# @param data Encoded data.
def feed(self, data):
+ # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb
+ # de remontee de log des tests
+ #print "TRACES OP - ElementTree.py/XMLTreeBuilder.feed() data = '#%s#'" %data
self._parser.Parse(data, 0)
##