我正在针对XSD验证XML文档,然后想要删除导致文档失败的节点。
我正在遇到一个问题,因为SaxParseException似乎不包含任何有关我可以用来以编程方式删除节点的失败信息。
有没有办法从SaxParseException获取可以用来删除它的元素的引用?
答案 0 :(得分:1)
请在此处查看答案:How to get the element of and invalid xml file with failed xsd Validation
请注意,您提议做的事情在一般情况下是不安全的。对于一个简单的反例,请使用整数类型的元素X
,该元素必须在其父级中至少出现一次。如果你在其中放入一个字符串值,它现在将无法验证。如果删除它,文档将违反minOccurs约束。
你可以尝试删除元素并从头开始重新启动验证,但是你可能会在很长的循环中结束并且没有得到好的结果。