为什么 etree.tostring() 不适用于不同的方法?

Why is etree.tostring() not working for different methods?

我正在学习 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 个不同格式的输出字符串:xml、html 和文本。但是,我只得到 3 个 XML 格式的输出。

我在这里错过了什么?我应该进口什么东西吗?我怀疑 etree.XML 赋值部分有问题,但正如我所说:我只是按照这里的指示操作。人们认为哪里不对劲?

tostring() 调用的结果确实不同,但每次都丢失,而您却打印了 3 次 same 表达式。 (请注意 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