在lxml中捕獲Schematron驗證的錯誤,可以使用lxml.etree.schematron
模塊的from_schematron
函數來加載Schematron規則,然后使用lxml.etree.Schematron
對象的assertValid
方法來驗證XML文檔。如果驗證失敗,會拋出lxml.etree.DocumentInvalid
異常,可以在異常中捕獲驗證錯誤信息。
下面是一個示例代碼:
from lxml import etree
# 加載Schematron規則
schema_doc = etree.parse('your_schematron_schema.sch')
schema = etree.Schematron(schema_doc)
# 驗證XML文檔
xml_doc = etree.parse('your_xml_doc.xml')
try:
schema.assertValid(xml_doc)
print('XML文檔通過Schematron驗證')
except etree.DocumentInvalid as e:
print('XML文檔未通過Schematron驗證:')
print(e)
在上面的代碼中,首先加載Schematron規則并創建Schematron
對象,然后使用assertValid
方法驗證XML文檔。如果驗證失敗,會捕獲DocumentInvalid
異常,并打印錯誤信息。