我正在使用python版本2.7.3。
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>The tag "StackOverflow" is good to bring up at parties.</test>
</root>
我将使用elementtree更改xml中的文本。然后我写信给文件。
但<
更改为<
等。它将是:
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>The tag "StackOverflow" is good to bring up at parties.</test>
</root>
当我使用elementtree.write写入文件时我想看到的内容:
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>The tag "StackOverflow" is good to bring up at parties.</test>
</root>
我想将此文本原样用于在XML中显示,因此我不希望XML解析器弄乱它。 有什么办法吗?
我使用此代码
import xml.etree.ElementTree as ET
class CommentedTreeBuilder(ET.XMLTreeBuilder):
def __init__(self):
ET.XMLTreeBuilder.__init__(self)
self._parser.CommentHandler = self.handle_comment
def handle_comment(self, data):
self._target.start(ET.Comment, {})
self._target.data(data)
self._target.end(ET.Comment)
with open('test.xml', 'r') as f:
tree = ET.parse(f, parser=CommentedTreeBuilder())
root = tree.getroot()
test = root.find('test')
test.text += 'test'
tree.write('test.xml', encoding="UTF-8", xml_declaration=True)
>
没有问题。 "


有问题