From 791744b07004222c31b4fca34e62607685aa11fa Mon Sep 17 00:00:00 2001 From: R David Murray Date: Sat, 1 Oct 2011 16:19:51 -0400 Subject: #4147: minidom's toprettyxml no longer adds whitespace to text nodes. Patch by Dan Kenigsberg. --- Lib/test/test_minidom.py | 7 +++++++ Lib/xml/dom/minidom.py | 6 ++++-- Misc/ACKS | 1 + Misc/NEWS | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 200b95d..5c09c46 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -446,6 +446,13 @@ class MinidomTest(unittest.TestCase): dom.unlink() self.confirm(domstr == str.replace("\n", "\r\n")) + def test_toPrettyXML_perserves_content_of_text_node(self): + str = 'B' + dom = parseString(str) + dom2 = parseString(dom.toprettyxml()) + self.assertEqual(dom.childNodes[0].childNodes[0].toxml(), + dom2.childNodes[0].childNodes[0].toxml()) + def testProcessingInstruction(self): dom = parseString('') pi = dom.documentElement.firstChild diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index 218c62e..386494d 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -836,7 +836,9 @@ class Element(Node): _write_data(writer, attrs[a_name].value) writer.write("\"") if self.childNodes: - writer.write(">%s"%(newl)) + writer.write(">") + if self.childNodes[0].nodeType != Node.TEXT_NODE: + writer.write(newl) for node in self.childNodes: node.writexml(writer,indent+addindent,addindent,newl) writer.write("%s%s" % (indent,self.tagName,newl)) @@ -1061,7 +1063,7 @@ class Text(CharacterData): return newText def writexml(self, writer, indent="", addindent="", newl=""): - _write_data(writer, "%s%s%s"%(indent, self.data, newl)) + _write_data(writer, self.data) # DOM Level 3 (WD 9 April 2002) diff --git a/Misc/ACKS b/Misc/ACKS index 408d91b..5bf395b 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -468,6 +468,7 @@ Lou Kates Hiroaki Kawai Sebastien Keim Ryan Kelly +Dan Kenigsberg Robert Kern Randall Kern Magnus Kessler diff --git a/Misc/NEWS b/Misc/NEWS index f13fbe8..42627a2 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -36,6 +36,8 @@ Core and Builtins Library ------- +- Issue #4147: minidom's toprettyxml no longer adds whitespace to text nodes. + - Issue #13034: When decoding some SSL certificates, the subjectAltName extension could be unreported. -- cgit v0.12