如何在Java中解析损坏的XML文件?

如何在Java中解析损坏的XML文件?,java,xml,Java,Xml,我从一个我无法控制的外部源接收XML文件。一些XML文件已损坏。具体地说,在文件的末尾,缺少一些结束标记。事情是这样的: <?xml version="1.0" encoding="UTF-8" ?> <a> <b> <c/> </b> <b> <c/> </a> 我认为如果我们简单地忽略没有匹配结束标记的元素,我们的系统就会很好 我可以使用什么库来解析这些XML文件

我从一个我无法控制的外部源接收XML文件。一些XML文件已损坏。具体地说,在文件的末尾,缺少一些结束标记。事情是这样的:

<?xml version="1.0" encoding="UTF-8" ?>
<a>
  <b>
    <c/>
  </b>
  <b>
    <c/>
</a>

我认为如果我们简单地忽略没有匹配结束标记的元素,我们的系统就会很好


我可以使用什么库来解析这些XML文件中的内容?

您需要自己手动解析,没有XML解析器可以处理格式不正确的XML。一种可能性是使用SAX解析器,它将解析文档直到出现错误,然后停止。

XML解析器不应支持这种行为。但是,如果您能够识别出文件的错误,您可以做出反应,请清理它并重试。

Idk如果JSoup可以工作。它应该可以原谅HTML。Idk关于XML。

您有文档的模式吗?这似乎可以改变从错误中恢复的容易程度……有解析技术可以以各种方式从此类错误中恢复。但我不知道XML可以使用什么。我怀疑你是否想自己开发它。如果有人给你发送了坏的Javascript,你会怎么做?如果汤里有只苍蝇你怎么办?请向供应商投诉,否则情况将永远不会好转。还有……另一个问题被认为是重复的,而实际上它不是重复的。唉。