3

我正在学习 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))

在练习中,它说如果我这样做,我应该得到 3 个不同格式的 root 输出字符串:xml、html 和文本。但是,我只得到 3 个 XML 格式的输出。

我在这里想念什么?我应该进口一些东西吗?我怀疑 etree.XML 分配部分有问题,但正如我所说:我只是按照这里的指示。人们认为哪里不对劲?

4

1 回答 1

1

调用的结果tostring()确实不同,但每次都丢失了,而是打印了3 次相同的表达式。(请注意,它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
于 2015-06-25T19:51:58.707 回答