XMLSchema:是否可以计算无效文档的有效性(例如,百分比)?

Phi*_*ham 5 xml xsd lxml xmllint

我正在使用lxmlPython来根据XML Schema定义验证许多XML文档.很多这些文件都没有验证 - 而且目前它们并没有被预期 - 但是如果我能够计算它们的有效性(百分比)用于报告目的,那将是有用的.我有能力使用xmllint或其他命令行工具,如果能够提供有用的统计数据.

Sea*_*ira 1

lxml解析器提供了一种获取尝试解析文档时发生的错误列表的方法。将其与解析器的recover关键字参数结合起来,您会得到如下所示的结果:

# Warning, untested, may not work
parser = etree.XMLParser(recover=True)
it_would_be_a_tree = etree.parse(your_xml_data, parser)
total_errors = len(parser.error_log)
Run Code Online (Sandbox Code Playgroud)

然后您可以计算所代表的文件的百分比total_errors。您可以使用简单的测量方法,例如每行错误或每个字符错误,而不会出现任何问题。it_would_be_a_tree如果实际上是一个tree结构(total_elements / total_errors例如 ),也可以采用更复杂的措施。