Fix xml.etree.ElementInclude to include the tail of the current node. Issue #6231

This commit is contained in:
Florent Xicluna 2010-08-08 23:08:41 +00:00
parent 14bd1c3b2e
commit ba8a98600e
3 changed files with 22 additions and 1 deletions

View File

@ -1277,6 +1277,14 @@ def processinginstruction():
XINCLUDE["count.txt"] = "324387"
XINCLUDE["C2b.xml"] = """\
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
<p>This document has been <em>accessed</em>
<xi:include href="count.txt" parse="text"/> times.</p>
</document>
"""
XINCLUDE["C3.xml"] = """\
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
@ -1352,6 +1360,16 @@ def xinclude():
324387 times.</p>
</document>
Textual inclusion after sibling element (based on modified XInclude C.2)
>>> document = xinclude_loader("C2b.xml")
>>> ElementInclude.include(document, xinclude_loader)
>>> print(serialize(document)) # C2b
<document>
<p>This document has been <em>accessed</em>
324387 times.</p>
</document>
Textual inclusion of XML example (XInclude C.3)
>>> document = xinclude_loader("C3.xml")

View File

@ -125,7 +125,7 @@ def include(elem, loader=None):
)
if i:
node = elem[i-1]
node.tail = (node.tail or "") + text
node.tail = (node.tail or "") + text + (e.tail or "")
else:
elem.text = (elem.text or "") + text + (e.tail or "")
del elem[i]

View File

@ -63,6 +63,9 @@ Extensions
Library
-------
- Issue #6231: Fix xml.etree.ElementInclude to include the tail of the
current node.
- Issue #8047: Fix the xml.etree serializer to return bytes by default. Use
``encoding="unicode"`` to generate a Unicode string.