1.1 --- a/__init__.py Sun Nov 02 18:14:51 2003 +0000
1.2 +++ b/__init__.py Mon Nov 10 23:52:54 2003 +0000
1.3 @@ -8,6 +8,16 @@
1.4 import libxml2
1.5 import sys
1.6
1.7 +# NOTE: libxml2 seems to use UTF-8 throughout.
1.8 +
1.9 +def to_unicode(s):
1.10 + if s is None:
1.11 + return None
1.12 + elif type(s) == type(""):
1.13 + return unicode(s, encoding="utf-8")
1.14 + else:
1.15 + return s
1.16 +
1.17 # NOTE: Consider a generator instead.
1.18
1.19 class NamedNodeMap(object):
1.20 @@ -133,17 +143,17 @@
1.21 def _namespaceURI(self):
1.22 ns = self._getNs()
1.23 if ns is not None:
1.24 - return ns.content
1.25 + return to_unicode(ns.content)
1.26 else:
1.27 return None
1.28
1.29 def _nodeValue(self):
1.30 - return self._node.content
1.31 + return to_unicode(self._node.content)
1.32
1.33 def _prefix(self):
1.34 ns = self._getNs()
1.35 if ns is not None:
1.36 - return ns.name
1.37 + return to_unicode(ns.name)
1.38 else:
1.39 return None
1.40
1.41 @@ -161,7 +171,7 @@
1.42 return None
1.43
1.44 def _localName(self):
1.45 - return self._node.name
1.46 + return to_unicode(self._node.name)
1.47
1.48 def _parentNode(self):
1.49 if self.nodeType == xml.dom.Node.DOCUMENT_NODE:
1.50 @@ -182,10 +192,10 @@
1.51 return self.getAttribute(name) is not None
1.52
1.53 def getAttributeNS(self, ns, localName):
1.54 - return self._node.nsProp(localName, ns)
1.55 + return to_unicode(self._node.nsProp(localName, ns))
1.56
1.57 def getAttribute(self, name):
1.58 - return self._node.prop(name)
1.59 + return to_unicode(self._node.prop(name))
1.60
1.61 def getAttributeNodeNS(self, ns, localName):
1.62 return self.attributes[(ns, localName)]