i have this xml:<user>
<name>H & M</name>
and i parse it using this code:
DocumentBuilder documentBuilder = null;
Document document = null;
try {
documentBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
document = documentBuilder.parse(is);
} catch (Exception e) {
return result;
}
NodeList nl = document.getElementsByTagName(XML_RESPONSE_ROOT);
if (nl.getLength() > 0) {
resp_code = nl.item(0).getAttributes().getNamedItem(
XML_RESPONSE_STATUS).getNodeValue();
if (resp_code.equals(RESP_CODE_OK_SINGLE)) {
nl = document
.getElementsByTagName(XML_RESPONSE_TAG_CONTACT);
NodeList values = nl.item(i).getChildNodes();
etc..
when i get the node value by: node.getNodeValue();
i get only what's before the ampersand, even though the ampersand is escaped
i want to get the whole string: "H & M"
thanks
It depends on how your XML document was constructed. In particular, it can have multiple adjucent Text nodes in "H & M" while your code expects it to be just one. Try to use nodeVariable.normalize() before getting its value.
According to DOM parser API: "normalize() - Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes..."
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With