gpt4 book ai didi

java - DocumentBuilder 解析在命中 '&' 时中断字符串

转载 作者:数据小太阳 更新时间:2023-10-29 01:57:42 25 4
gpt4 key购买 nike

我有这个 xml:
<user><br/>
<name>H &amp; M</name>

我使用这段代码解析它:


DocumentBuilder documentBuilder = null;
Document document = null;<p></p>

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();

等..

当我通过以下方式获取节点值时:node.getNodeValue();

我只得到和号之前的内容,即使和号被转义了

我想得到整个字符串:“H & M”

谢谢

最佳答案

这取决于您的 XML 文档是如何构造的。特别是,它可以在“H & M”中有多个相邻的文本节点,而您的代码期望它只有一个。在获取其值之前尝试使用 nodeVariable.normalize() 。

根据 DOM 解析器 API:“normalize() - 将所有文本节点置于此节点下子树的完整深度中,包括属性节点,进入“正常”形式,其中只有结构(例如,元素,评论、处理指令、CDATA 部分和实体引用)分隔 Text 节点,即既没有相邻的 Text 节点,也没有空的 Text 节点……”

关于java - DocumentBuilder 解析在命中 '&amp;' 时中断字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com