Or *_*bel 5 java xml parsing dom escaping
我有这个xml:
<user>
<name>H & M</name>
我用这段代码解析它:
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();
Run Code Online (Sandbox Code Playgroud)
等等..
当我得到节点值时:node.getNodeValue();
我只获得了&符号之前的内容,即使&符号被逃脱了
我想得到整个字符串:"H&M"
谢谢
这取决于 XML 文档的构造方式。特别是,“H & M”中可以有多个相邻的文本节点,而您的代码希望它只有一个。在获取其值之前尝试使用nodeVariable.normalize()。
根据 DOM 解析器 API:“normalize() - 将此节点下的子树的完整深度中的所有文本节点(包括属性节点)放入“正常”形式,其中只有结构(例如,元素、注释、处理指令) 、CDATA 部分和实体引用)分隔文本节点,即既没有相邻的文本节点,也没有空的文本节点......”
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |