gpt4 book ai didi

python - lxml中 `etree.fromstring()`和 `etree.XML()`的功能区别是什么?

转载 作者:太空狗 更新时间:2023-10-30 00:01:26 27 4
gpt4 key购买 nike

lxml提供了一些不同的函数来解析字符串。其中两个,etree.fromstring()etree.XML() ,看起来很像。前者的文档字符串说它用于解析“字符串”,而后者是“字符串常量”。此外,XML() 的文档字符串指出:

This function can be used to embed "XML literals" in Python code, [...]

这些函数之间的功能区别是什么?什么时候应该用一个代替另一个?

最佳答案

查看 source code , 对于 XML()fromstring() ,前者有这段额外的代码片段:

if parser is None:
parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
if not isinstance(parser, XMLParser):
parser = __DEFAULT_XML_PARSER

因此它们在副作用上有所不同:XML() 仅使用默认的 XML 解析器作为默认的解析器。如果默认解析器更改为非 XMLParserXML() 将忽略它。

etree.set_default_parser(etree.HTMLParser())
etree.tostring(etree.fromstring("<root/>"))
# b'<html><body><root/></body></html>'
etree.tostring(etree.XML("<root/>"))
# b'<root/>'

关于python - lxml中 `etree.fromstring()`和 `etree.XML()`的功能区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45535862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com