1

对于 在元素文本中使用 '&' 进行 XML 解析问题中讨论的问题, 我遇到了同样的问题,但是在处理之前替换&&不能解决问题

这是我的代码:

convertedString = convertedString.replaceAll("& ", "&");
convertedString = StringEscapeUtils.unescapeHtml(convertedString);

这是我的错误:

[Fatal Error] :1:253: The entity name must immediately follow the '&' in the entity reference.
org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)

...

如果有人可以提供帮助,不胜感激,非常感谢

4

2 回答 2

2
convertedString = StringEscapeUtils.unescapeHtml(convertedString);
convertedString = convertedString.replaceAll("& ", "& "); // Also note the added space

StringEscapeUtils.unescapeHtml()实际上会转换&&.

于 2012-08-27T04:47:34.483 回答
1

谢谢Arjan,对不起,这可能是一个错误的问题。我刚刚意识到这是在抱怨的 DocumentBuilder 解析器,它不接受包含&符号的 xml,例如:"<text> Health & Safety </text>",但是在 xml 内容中包含&符号是我的客户的要求,除非有其他方法可以绕过 DOMparsers,否则我会必须操纵前端,即显示jsp&而不是&amp;

于 2012-08-27T05:01:00.643 回答