你如何从etree对象中获取原始文本
How do you get original text from etree object
我找不到这方面的文档。
我有一个类型为 lxml.etree._ElementTree
的对象,我正在尝试从中获取原始文本。
对象是通过执行生成的:
tree = etree.parse(content, parser=parser)
然后,当 content
不再可用时,我需要在脚本中进一步访问原始内容。我想通过执行 tree
的某些功能来获取该内容,但我找不到任何相关文档。
我找到了对 tostring
函数的引用,但那似乎是一个无效函数。
想法?
tostring
不是树对象的方法,而是 lxml.etree
库的方法。
所以尝试 lxml.etree.tostring(tree)
。
请注意,这可能与原始文件不完全相同 - 它应该解析为相同的 XML,但空格、换行符和其他格式可能不同。此外,如果您对树进行了任何更改,它显然不会与原始文件匹配。
tostring
是一个有效的函数,也许您使用不当。这是一个完整的示例:
from lxml import etree
text = """
<?xml version="1.0" ?>
<people>
<person>
<id>1</id>
<name>Hal</name>
<notes>Hal likes chocolate</notes>
</person>
</people>"""
root = etree.fromstring(text)
etee.tostring(root)
# outputs the following
'<people>\n <person>\n <id>1</id>\n <name>Hal</name>\n <notes>Hal likes chocolate</notes>\n </person>\n</people>'
我找不到这方面的文档。
我有一个类型为 lxml.etree._ElementTree
的对象,我正在尝试从中获取原始文本。
对象是通过执行生成的:
tree = etree.parse(content, parser=parser)
然后,当 content
不再可用时,我需要在脚本中进一步访问原始内容。我想通过执行 tree
的某些功能来获取该内容,但我找不到任何相关文档。
我找到了对 tostring
函数的引用,但那似乎是一个无效函数。
想法?
tostring
不是树对象的方法,而是 lxml.etree
库的方法。
所以尝试 lxml.etree.tostring(tree)
。
请注意,这可能与原始文件不完全相同 - 它应该解析为相同的 XML,但空格、换行符和其他格式可能不同。此外,如果您对树进行了任何更改,它显然不会与原始文件匹配。
tostring
是一个有效的函数,也许您使用不当。这是一个完整的示例:
from lxml import etree
text = """
<?xml version="1.0" ?>
<people>
<person>
<id>1</id>
<name>Hal</name>
<notes>Hal likes chocolate</notes>
</person>
</people>"""
root = etree.fromstring(text)
etee.tostring(root)
# outputs the following
'<people>\n <person>\n <id>1</id>\n <name>Hal</name>\n <notes>Hal likes chocolate</notes>\n </person>\n</people>'