dom4j特殊字符處理html
問題:java
最近在作項目時,遇到了解析xml問題。dom
使用dom4j解析xml信息時,若是屬性值中包含&等特殊字符時,解析會提示以下異常:ide
java.lang.RuntimeException: 生成Document對象異常spa
1.dom4j解析xml:orm
通過查詢得知dom4j在解析xml信息時,須要對一些特殊字符進行特殊處理:xml
下面是五個在XML文檔中預約義好的實體:htm
< < 小於號對象
> > 大於號文檔
& & 和
' ' 單引號
" " 雙引號
好比你想輸出「&」,那你的xml中要寫成「&」,固然你這個值是寫在屬性裏的,是value=""這樣的形式。
2.dom4j生成xml:
在使用dom4j生成xml文件時,對於特殊字符「&」,總會自動生成"&",
所以在輸入"<"或者">"時,<表明<,結果將&轉成"&",就變成了"&lt;",
所以在使用xsl生成html時形成"<"沒法正常使用,解決方法是:
在建立writer對象時操做以下:
XMLWriter writer = new XMLWriter(fmt); //以輸出格式爲參數建立xml輸出對象
writer.setEscapeText(false);
這樣&符號就不會被轉義了。
請參閱dom4j文檔
setEscapeText
public void setEscapeText(boolean escapeText)
Sets whether text output should be escaped or not. This is enabled by default. It could be disabled if the output format is textual, like in XSLT where we can have xml, html or text output.
Parameters:
escapeText - DOCUMENT ME!