10

我有需要解析但无法控制创建的 XML。不幸的是,它不是非常严格的 XML,并且包含以下内容:

<mytag>This won't parse & contains an ampersand.</mytag>

javax.xml.stream 类根本不喜欢这样,并且正确地错误:

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[149,50]
Message: The entity name must immediately follow the '&' in the entity reference.

我该如何解决这个问题?我无法更改 XML,所以我想我需要一个容错解析器。

我的偏好是不需要对现有解析器代码造成太多破坏的修复。

4

3 回答 3

6

如果它不是有效的 XML(如上),则没有 XML 解析器会处理它(正如您所确定的)。如果您知道错误的范围(例如上述实体问题),那么最简单的解决方案可能是对其运行更正过程(修复实体,例如插入实体),然后将其提供给现有的解析器。

否则,您必须自己编写一个内置支持此类异常的代码。我无法相信这只是一项乏味且容易出错的任务。

于 2009-05-28T11:19:52.677 回答
1

我相信 JSoup 可以处理格式错误的 XML

于 2011-06-16T21:39:33.330 回答