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