5

lxml在 Python 中使用 XML 模式定义来验证许多 XML 文档。很多这些文件都没有验证——目前预计它们不会验证——但如果我可以计算它们的有效性(以百分比形式)以用于报告目的,那将很有用。xmllint如果能够提供有用的统计数据,我有能力使用或其他命令行工具。

4

1 回答 1

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)

然后你可以计算出文件所total_errors代表的百分比。您可以使用简单的度量,例如每行错误或每个字符的错误,而不会遇到任何麻烦。it_would_be_a_tree如果实际上是一个tree结构(total_elements / total_errors例如 ),则更复杂的测量也是可能的。

于 2013-04-30T01:17:20.617 回答