如果我使用 lxml 解析 XML 文档,是否可以查看元素的文本表示形式? 我尝试这样做:
print repr(node)
但是这个输出
<Element obj at b743c0>
我可以使用什么来查看节点是否存在于 XML 文件中?有没有什么
to_xml
方法之类的?
来自 http://lxml.de/tutorial.html#serialization
>>> root = etree.XML('<root><a><b/></a></root>')
>>> etree.tostring(root)
b'<root><a><b/></a></root>'
>>> print(etree.tostring(root, xml_declaration=True))
<?xml version='1.0' encoding='ASCII'?>
<root><a><b/></a></root>
>>> print(etree.tostring(root, encoding='iso-8859-1'))
<?xml version='1.0' encoding='iso-8859-1'?>
<root><a><b/></a></root>
>>> print(etree.tostring(root, pretty_print=True))
<root>
<a>
<b/>
</a>
</root>
tostring()
转换为字节对象。要转换为 str
对象,请将 encoding="unicode"
传递给 tostring()
或使用 tounicode()
代替。这可以实现真正漂亮的打印。
from lxml import etree
root = etree.XML('<root><a><b/></a></root>')
s1 = etree.tostring(root, pretty_print=True, encoding="unicode")
s2 = etree.tounicode(root, pretty_print=True)
print(s1)
<root>
<a>
<b/>
</a>
</root>
或
print(s2)
<root>
<a>
<b/>
</a>
</root>