是否可以使用lxml來檢查xml是否格式良好或功能是否過於強大?例如,即使xml格式不正確,它似乎也能夠解析。檢查xml文件是否格式正確的最簡單方法是什麼?可以使用lxml來檢查xml文件是否格式正確,或者它是否過於強大?
0
A
回答
3
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>
相關問題
- 1. 如何檢查xml文件內容的格式是否正確?
- 2. XDocument:是否可以強制加載格式不正確的XML文件?
- 3. 如何檢查格式是否正確
- 4. 如何檢查上傳的文件格式是否正確?
- 5. 如何檢查XML是否在Elixir中格式正確
- 6. c#,檢查文件是否正確
- 7. 檢查文件路徑是否正確,但不檢查文件是否存在
- 8. 請檢查PPA名稱或格式是否正確
- 9. 檢查引用者是否爲空或者它是否在數組中
- 10. 檢查cxDateEdit是否以正確的格式輸入
- 11. PHP檢查文件大小以查看它是否改變
- 12. 如果您檢查文件或圖像是否以路徑方式使用域來檢查PHP文件中的文件是否存在,是否重要?
- 13. 檢查nummer是否正確
- 14. 是否有可能檢查.Bak文件是否損壞或沒有恢復它
- 15. xml文件的未聲明前綴是否格式正確?
- 16. COALESCE是否可以正確使用VIEW?
- 17. 如何檢查XML是否有節點,或者它是使用XSLT的空文件?
- 18. 方案中可以檢查列表是否正確或不正確?
- 19. 以編程方式檢查文件是否是柵格或矢量(pdf,eps,ai)
- 20. 是否可以使用revapi maven插件來檢查SNAPSHOT版本?
- 21. 是否可以測試正則表達式以查看它是否減少爲:*
- 22. 是否可以檢查csv文件是否有來自VBA的任何數據?
- 23. 使用批處理或JavaScript來檢查文件是否打開
- 24. php reg表達式檢查日期格式是否正確
- 25. 如何檢查XSD模式是否格式正確?
- 26. 如何檢查xml文件是否可以在c#中訪問?
- 27. 是否可以通過查看HTTP流量來查看是否使用了AJAX?
- 28. 檢查文件是否是aws上的圖像或xml S3
- 29. 檢查MySQL狀態是否正確或不是以編程方式?
- 30. 檢查是否verfication代碼是正確
後的代碼,你試過畸形XML。如果XML格式不正確,'lxml'應該拋出異常。 – har07