lxml怎么捕獲Schematron驗(yàn)證的錯(cuò)誤

小億
84
2024-05-15 15:33:18

在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ò)誤信息。

0