lxml提供了一些不同的函数来解析字符串.其中的两个,etree.fromstring()并且etree.XML(),看起来非常相似.前者的文档字符串表示它用于解析"字符串",而后者表示"字符串常量".另外,XML()文档字符串说明:
此函数可用于在Python代码中嵌入"XML文字",[...]
这些功能之间的功能区别是什么?应该何时使用另一个?
查看源代码,for XML()和fromstring(),前者有以下额外的代码段:
if parser is None:
parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
if not isinstance(parser, XMLParser):
parser = __DEFAULT_XML_PARSER
Run Code Online (Sandbox Code Playgroud)
因此,它们的副作用有所不同:XML()仅使用默认XML解析器作为默认解析器。如果将默认解析器更改为非解析器XMLParser,XML()则将其忽略。
etree.set_default_parser(etree.HTMLParser())
etree.tostring(etree.fromstring("<root/>"))
# b'<html><body><root/></body></html>'
etree.tostring(etree.XML("<root/>"))
# b'<root/>'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |