remapNamespacePrefix: Preserve prefix of attribute names (#255)
Preserve prefix of attribute names when copying them over to the new node. This fixes an unintentional rewrite of `xml:space` to `space` that also caused scour to strip whitespace that should have been preserved. Closes: #239 Signed-off-by: Niels Thykier <niels@thykier.net>
This commit is contained in:
parent
cc11ef3d5e
commit
9a1286132f
3 changed files with 12 additions and 2 deletions
|
|
@ -3445,7 +3445,7 @@ def remapNamespacePrefix(node, oldprefix, newprefix):
|
|||
attrList = node.attributes
|
||||
for i in range(attrList.length):
|
||||
attr = attrList.item(i)
|
||||
newNode.setAttributeNS(attr.namespaceURI, attr.localName, attr.nodeValue)
|
||||
newNode.setAttributeNS(attr.namespaceURI, attr.name, attr.nodeValue)
|
||||
|
||||
# clone and add all the child nodes
|
||||
for child in node.childNodes:
|
||||
|
|
|
|||
|
|
@ -1502,7 +1502,16 @@ class RemoveRedundantSvgNamespacePrefix(unittest.TestCase):
|
|||
doc = scourXmlFile('unittests/redundant-svg-namespace.svg').documentElement
|
||||
r = doc.getElementsByTagNameNS(SVGNS, 'rect')[1]
|
||||
self.assertEqual(r.tagName, 'rect',
|
||||
'Redundant svg: prefix not removed')
|
||||
'Redundant svg: prefix not removed from rect')
|
||||
t = doc.getElementsByTagNameNS(SVGNS, 'text')[0]
|
||||
self.assertEqual(t.tagName, 'text',
|
||||
'Redundant svg: prefix not removed from text')
|
||||
|
||||
# Regression test for #239
|
||||
self.assertEqual(t.getAttribute('xml:space'), 'preserve',
|
||||
'Required xml: prefix removed in error')
|
||||
self.assertEqual(t.getAttribute("space"), '',
|
||||
'Required xml: prefix removed in error')
|
||||
|
||||
|
||||
class RemoveDefaultGradX1Value(unittest.TestCase):
|
||||
|
|
|
|||
|
|
@ -5,4 +5,5 @@
|
|||
<title>Test</title>
|
||||
</svg:rect>
|
||||
<vector:rect height="100" width="100"/>
|
||||
<svg:text xml:space="preserve"> Hallo World </svg:text>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 390 B |
Loading…
Add table
Add a link
Reference in a new issue