1.1 --- a/__init__.py Mon Nov 10 23:52:54 2003 +0000
1.2 +++ b/__init__.py Sat Nov 15 00:15:25 2003 +0000
1.3 @@ -10,10 +10,14 @@
1.4
1.5 # NOTE: libxml2 seems to use UTF-8 throughout.
1.6
1.7 +def from_unicode(s):
1.8 + if type(s) == type(u""):
1.9 + return s.encode("utf-8")
1.10 + else:
1.11 + return s
1.12 +
1.13 def to_unicode(s):
1.14 - if s is None:
1.15 - return None
1.16 - elif type(s) == type(""):
1.17 + if type(s) == type(""):
1.18 return unicode(s, encoding="utf-8")
1.19 else:
1.20 return s
1.21 @@ -205,6 +209,9 @@
1.22 return self.attributes[(None, localName)]
1.23
1.24 def setAttributeNS(self, ns, name, value):
1.25 + # NOTE: Need to convert from Unicode.
1.26 + ns, name, value = map(from_unicode, [ns, name, value])
1.27 +
1.28 prefix, localName = _get_prefix_and_localName(name)
1.29 if prefix is not None:
1.30 self._node.setNsProp(self._node.newNs(ns, prefix), localName, value)
1.31 @@ -215,6 +222,9 @@
1.32 self._node.setNsProp(None, localName, value)
1.33
1.34 def setAttribute(self, name, value):
1.35 + # NOTE: Need to convert from Unicode.
1.36 + name, value = map(from_unicode, [name, value])
1.37 +
1.38 self._node.setProp(name, value)
1.39
1.40 def setAttributeNodeNS(self, ns, name, node):
1.41 @@ -226,6 +236,9 @@
1.42 self.setAttribute(name, node.nodeValue)
1.43
1.44 def createElementNS(self, ns, name):
1.45 + # NOTE: Need to convert from Unicode.
1.46 + ns, name = map(from_unicode, [ns, name])
1.47 +
1.48 prefix, localName = _get_prefix_and_localName(name)
1.49 _node = libxml2.newNode(localName)
1.50 _ns = _node.newNs(ns, prefix)
1.51 @@ -233,17 +246,29 @@
1.52 return Node(_node)
1.53
1.54 def createElement(self, name):
1.55 + # NOTE: Need to convert from Unicode.
1.56 + name = from_unicode(name)
1.57 +
1.58 _node = libxml2.newNode(localName)
1.59 return Node(_node)
1.60
1.61 def createAttributeNS(self, ns, name):
1.62 + # NOTE: Need to convert from Unicode.
1.63 + ns, name = map(from_unicode, [ns, name])
1.64 +
1.65 prefix, localName = _get_prefix_and_localName(name)
1.66 return TemporaryNode(ns, name, xml.dom.Node.ATTRIBUTE_NODE)
1.67
1.68 def createAttribute(self, name):
1.69 + # NOTE: Need to convert from Unicode.
1.70 + name = from_unicode(name)
1.71 +
1.72 return TemporaryNode(ns, name, xml.dom.Node.ATTRIBUTE_NODE)
1.73
1.74 def createTextNode(self, value):
1.75 + # NOTE: Need to convert from Unicode.
1.76 + name = from_unicode(name)
1.77 +
1.78 return Node(libxml2.newText(value))
1.79
1.80 def _add_node(self, tmp):