在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
异常,并打印错误信息。