“&”的XML解析问题在元素文本继续

时间:2012-08-27 02:50:31

标签: java xml parsing

对于讨论的问题 XML parsing issue with '&' in element text 我遇到了同样的问题,但在处理之前用&替换&并不能解决问题

这是我的代码:

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)

...

感谢所有人都可以提供帮助,非常感谢

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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