lxml RelaxNG验证给出了不精确的结果

时间:2012-07-10 13:10:53

标签: python lxml relaxng

我正在使用python 2.7和lxml来验证带有RelaxNG的大型xml文件。当xml没有正确验证时,我会得到关于问题的位置和性质的不准确的结果。通常它只是说:“元素ElementName无法验证内容” - 其中ElementName只是最顶层元素的名称。

当我使用与Java相同的xml和相同的relaxng文件时,我得到错误所在的确切行号。 这是我正在使用的代码:

from lxml import etree  as ET
def ValidateXMLWithRNG(rng_file, xml_file):
    isXMLValid = False
    try:
        doc = ET.ElementTree()               
        doc.parse(xml_file)
        relaxng = ET.RelaxNG(file=rng_file)
        isXMLValid = relaxng.assert_(doc)
    except BaseException as ex:
        log = relaxng.error_log
        print log.last_error
    return isXMLValid

有没有办法从lxml和RelaxNG获得更准确的结果?

0 个答案:

没有答案
相关问题