我正在针对 XSD 验证 XML 文档,然后想要删除导致文档失败的节点。
我遇到了一个问题,即 SaxParseException 似乎不包含有关我可以用来以编程方式删除节点的失败的任何信息。
有没有办法从 SaxParseException 中获取对元素的引用,可以用来删除它?
在此处查看答案:如何通过失败的 xsd 验证获取元素和无效 xml 文件
请注意,在一般情况下,您打算做的事情是不安全的。举一个简单的反例,取一个X
整数类型的元素,它必须在其父元素中至少出现一次。如果您在其中放入一个字符串值,它现在将无法通过验证。如果删除它,文档将违反 minOccurs 约束。
您可以尝试删除该元素并从头开始重新验证,但您可能会陷入很长的循环并且不会得到好的结果。