@@ -22,34 +22,30 @@ def getDomModule(DomImplementation):
22
22
23
23
def getDomBuilder (DomImplementation ):
24
24
Dom = DomImplementation
25
- infoset_filter = ihatexml .InfosetFilter ()
26
25
class AttrList :
27
26
def __init__ (self , element ):
28
27
self .element = element
29
28
def __iter__ (self ):
30
29
return self .element .attributes .items ().__iter__ ()
31
30
def __setitem__ (self , name , value ):
32
- self .element .setAttribute (infoset_filter .coerceAttribute (name ),
33
- infoset_filter .coerceCharacters (value ))
31
+ self .element .setAttribute (name , value )
34
32
def items (self ):
35
- return [(infoset_filter . fromXmlName ( item [0 ]) , item [1 ]) for item in
33
+ return [(item [0 ], item [1 ]) for item in
36
34
self .element .attributes .items ()]
37
35
def keys (self ):
38
- return [infoset_filter .fromXmlName (item ) for item in
39
- self .element .attributes .keys ()]
36
+ return self .element .attributes .keys ()
40
37
def __getitem__ (self , name ):
41
- name = infoset_filter .toXmlName (name )
42
38
return self .element .getAttribute (name )
43
39
44
40
def __contains__ (self , name ):
45
41
if isinstance (name , tuple ):
46
42
raise NotImplementedError
47
43
else :
48
- return self .element .hasAttribute (infoset_filter . toXmlName ( name ) )
44
+ return self .element .hasAttribute (name )
49
45
50
46
class NodeBuilder (_base .Node ):
51
47
def __init__ (self , element ):
52
- _base .Node .__init__ (self , element .localName )
48
+ _base .Node .__init__ (self , element .nodeName )
53
49
self .element = element
54
50
55
51
namespace = property (lambda self :hasattr (self .element , "namespaceURI" )
@@ -60,7 +56,6 @@ def appendChild(self, node):
60
56
self .element .appendChild (node .element )
61
57
62
58
def insertText (self , data , insertBefore = None ):
63
- data = infoset_filter .coerceCharacters (data )
64
59
text = self .element .ownerDocument .createTextNode (data )
65
60
if insertBefore :
66
61
self .element .insertBefore (text , insertBefore .element )
@@ -91,17 +86,14 @@ def setAttributes(self, attributes):
91
86
for name , value in attributes .items ():
92
87
if isinstance (name , tuple ):
93
88
if name [0 ] is not None :
94
- qualifiedName = (name [0 ] + ":" +
95
- infoset_filter .coerceAttribute (
96
- name [1 ]))
89
+ qualifiedName = (name [0 ] + ":" + name [1 ])
97
90
else :
98
- qualifiedName = infoset_filter .coerceAttribute (
99
- name [1 ])
91
+ qualifiedName = name [1 ]
100
92
self .element .setAttributeNS (name [2 ], qualifiedName ,
101
93
value )
102
94
else :
103
95
self .element .setAttribute (
104
- infoset_filter . coerceAttribute ( name ) , value )
96
+ name , value )
105
97
attributes = property (getAttributes , setAttributes )
106
98
107
99
def cloneNode (self ):
@@ -161,7 +153,7 @@ def getFragment(self):
161
153
return _base .TreeBuilder .getFragment (self ).element
162
154
163
155
def insertText (self , data , parent = None ):
164
- data = infoset_filter . coerceCharacters ( data )
156
+ data = data
165
157
if parent <> self :
166
158
_base .TreeBuilder .insertText (self , data , parent )
167
159
else :
@@ -210,11 +202,13 @@ def serializeElement(element, indent=0):
210
202
i = 0
211
203
attr = element .attributes .item (i )
212
204
while attr :
213
- name = infoset_filter . fromXmlName ( attr .localName )
205
+ name = attr .nodeName
214
206
value = attr .value
215
207
ns = attr .namespaceURI
216
208
if ns :
217
- name = "%s %s" % (constants .prefixes [ns ], name )
209
+ name = "%s %s" % (constants .prefixes [ns ], attr .localName )
210
+ else :
211
+ name = attr .nodeName
218
212
i += 1
219
213
attr = element .attributes .item (i )
220
214
@@ -241,21 +235,21 @@ def dom2sax(node, handler, nsmap={'xml':XML_NAMESPACE}):
241
235
attr = node .getAttributeNode (attrname )
242
236
if (attr .namespaceURI == XMLNS_NAMESPACE or
243
237
(attr .namespaceURI == None and attr .nodeName .startswith ('xmlns' ))):
244
- prefix = (attr .localName != 'xmlns' and attr .localName or None )
238
+ prefix = (attr .nodeName != 'xmlns' and attr .nodeName or None )
245
239
handler .startPrefixMapping (prefix , attr .nodeValue )
246
240
prefixes .append (prefix )
247
241
nsmap = nsmap .copy ()
248
242
nsmap [prefix ] = attr .nodeValue
249
- del attributes [(attr .namespaceURI , attr .localName )]
243
+ del attributes [(attr .namespaceURI , attr .nodeName )]
250
244
251
245
# apply namespace declarations
252
246
for attrname in node .attributes .keys ():
253
247
attr = node .getAttributeNode (attrname )
254
248
if attr .namespaceURI == None and ':' in attr .nodeName :
255
249
prefix = attr .nodeName .split (':' )[0 ]
256
250
if nsmap .has_key (prefix ):
257
- del attributes [(attr .namespaceURI , attr .localName )]
258
- attributes [(nsmap [prefix ],attr .localName )]= attr .nodeValue
251
+ del attributes [(attr .namespaceURI , attr .nodeName )]
252
+ attributes [(nsmap [prefix ],attr .nodeName )]= attr .nodeValue
259
253
260
254
# SAX events
261
255
ns = node .namespaceURI or nsmap .get (None ,None )
0 commit comments