2012-08-27 62 views
1

對於 XML parsing issue with '&' in element text 討論的問題,我有同樣的問題,但處理之前&更換&不能解決問題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) 

...

感激,如果有人可以幫助,非常感謝

+0

你不應該逃避'&'?你爲什麼試圖更換它?這是不是基本上是你從前面的問題相同的問題? – MadProgrammer

+0

[XML元素文本中'&'解析問題]的可能重複(http://stackoverflow.com/questions/3838316/xml-parsing-issue-with-in-element-text) – EJP

+0

嗨,大家好,我已經更新了我上面的問題,對於混淆感到抱歉 – dale

回答

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

StringEscapeUtils.unescapeHtml()實際上轉換&&

1

謝謝Arjan,抱歉,這可能是一個錯誤的問題。我只是意識到它是抱怨的DocumentBuilder解析器,它不接受包含&符號的xml,例如:"<text> Health & Safety </text>",但是在xml內容中有&符號是我客戶端的一個要求,除非有其他方式繞過DOMparsers,將不得不操縱前端,即jsp的顯示&而不是&amp;

+0

所有的html客戶端顯示字符串'&'爲'&',所以你不需要操縱任何東西。如果你允許用戶輸入,你必須在保存之前修復它。 – Arjan