gpt4 book ai didi

xml - lxml可以用来检查xml文件是否格式良好,还是功能太强大?

转载 作者:行者123 更新时间:2023-12-04 22:42:11 26 4
gpt4 key购买 nike

lxml 可以用来检查 xml 是否格式良好或者它是否太强大?例如,即使 xml 格式不正确,它似乎也能够解析。检查 xml 文件格式是否正确的最简单方法是什么?

最佳答案

lxml解析格式不正确的 XML 时应该抛出异常,例如:

from lxml import etree

xml = """
<multipleroot>
<noclosingtag>
</multipleroot>
<multipleroot></multipleroot>"""
doc = etree.fromstring(xml)

抛出异常:
Traceback (most recent call last):
File "D:\StackOverflow\Python\Q50.py", line 8, in <module>
doc = etree.fromstring(xml)
......
......
XMLSyntaxError: Opening and ending tag mismatch: noclosingtag line 3 and multipleroot, line 4, column 16

但是,如果您明确告诉 XMLParser恢复格式不正确的 XML,或者您正在使用 HTMLParser相反, lxml可能仍然能够解析 XML:
from lxml import etree

xml = """
<multipleroot>
<noclosingtag>
</multipleroot>
<multipleroot></multipleroot>"""
parser = etree.XMLParser(recover=True)
#parser = etree.HTMLParser()
doc = etree.fromstring(xml, parser=parser)
print(etree.tostring(doc))

成功打印解析的 XML :
<multipleroot>
<noclosingtag>
</noclosingtag>
<multipleroot/></multipleroot>

关于xml - lxml可以用来检查xml文件是否格式良好,还是功能太强大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551527/

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