我使用的是 python 版本 2.7.3。
测试.txt:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>The tag <StackOverflow> is good to bring up at parties.</test>
</root>
结果:
>>> import xml.etree.ElementTree as ET
>>> e = ET.parse('test.txt')
>>> root = e.getroot()
>>> print root.find('test').text
The tag <StackOverflow> is good to bring up at parties.
如您所见,解析器一定已经更改了 <
到<
的等
我想看到的:
The tag <StackOverflow> is good to bring up at parties.
未修改的原始文本。有时我真的很喜欢生吃。生的。
我想按原样使用此文本在 HTML 中显示,因此我不希望 XML 解析器弄乱它。
我必须重新转义每个字符串还是可以有其他方法?
最佳答案
import xml.etree.ElementTree as ET
e = ET.parse('test.txt')
root = e.getroot()
print(ET.tostring(root.find('test')))
产量
<test>The tag <StackOverflow> is good to bring up at parties.</test>
或者,您可以使用 saxutils.escape 对文本进行转义:
import xml.sax.saxutils as saxutils
print(saxutils.escape(root.find('test').text))
产量
The tag <StackOverflow> is good to bring up at parties.
关于python - 如何在未触及的 python etree 中正确转义 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516664/