2011-04-11 76 views
2

我正在從包含「&」的數據庫提取數據。我將它寫入到stringbuffer中並將它以xml格式傳遞給jsp。在jsp中,當我得到doc.getElementByTagName(「tagname」)和fetchin的childnode長度時,我得到空值。以XML格式將特殊字符從java傳遞給jsp

XML數據包含「&」。我提取的數據非常龐大。所以,這可能是在Java

<parentnode> <childnode> <Data1>A & B</Data1>C & D<Data2></Data2> <Data1>E & F</Data1><Data2></Data2> <Data1></Data1><Data2></Data2> .. .. </childnode> </parentnode>

回答

0

你需要逃避它與&取代「&」的最有效途徑。由於您似乎在JSP中打印XML純文本(這是一種糟糕的方法,但不管),因此您可以使用JSTL <c:out>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
... 
<c:out value="${bean.someXmlString}" /> 

或者,你也可以逃避它使用Apache Commons LangStringEscapeUtils#escapeXml() Java端。

stringBuilder.append(StringEscapeUtils.escapeXml(someXmlString)); 
// ...