我正在使用
python版本2.7.3.
的test.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.
如您所见,解析器必须已将& lt;’s更改为<‘s等. 我想看到的: 标签& lt; StackOverflow& gt;很高兴参加派对. 未经修饰的原始文本.有时我真的很喜欢它.生. 我想将此文本原样用于在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.