我正在学习XML并尝试以下练习代码:
root = etree.XML('<html><head/><body><p>Hello<br/>World</p></body></html>')
etree.tostring(root, method='xml')
print(etree.tostring(root))
etree.tostring(root, method='html')
print(etree.tostring(root))
etree.tostring(root, method='text')
print(etree.tostring(root))
在练习中,它说如果我这样做,我应该为root获取3个不同格式的输出字符串:xml,html和text。但是,我只是获得3个XML格式的输出。
我在这里缺少什么?我应该进口一些东西吗?我怀疑是etree.XML分配部分出了什么问题,但正如我所说:我只是按照这里的指示行事。人们认为什么是错的?
答案 0 :(得分:1)
tostring()
调用的结果确实不同,但每次都会丢失,而您将打印相同的表达式三次。 (请注意tostring()
返回结果,不修改其参数。)
如果您改为运行此脚本:
from lxml import etree
root = etree.XML('<html><head/><body><p>Hello<br/>World</p></body></html>')
print(etree.tostring(root, method='xml'))
print(etree.tostring(root, method='html'))
print(etree.tostring(root, method='text'))
你会得到你期望的输出:
<html><head/><body><p>Hello<br/>World</p></body></html>
<html><head></head><body><p>Hello<br>World</p></body></html>
HelloWorld