You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java创建含XML标记与纯文本的org.w3c.dom.Element?

解决DOM元素中混合标签与纯文本的转义问题

嗨,我来帮你理清这个问题:你没法用所谓的“无标签仅存文本的虚拟XML节点”来解决这个转义问题,因为你遇到的核心问题是setTextContent的工作机制——它会把传入的所有内容都当作纯文本处理,自动转义<、>这类XML特殊字符,所以才会出现&lt;label&gt;这种转义后的结果。

正确的做法是直接构建真实的DOM节点树,而不是把HTML/XML字符串拼起来塞给setTextContent。具体代码应该这样写:

// 创建aff节点
Element aff = document.createElement("aff");
aff.setAttribute("id", "aff" + reference.id);

// 创建label节点并设置文本
Element label = document.createElement("label");
label.setTextContent(reference.label);
aff.appendChild(label);

// 创建纯文本节点并添加到aff中
Text textNode = document.createTextNode(reference.value);
aff.appendChild(textNode);

这样生成的DOM结构就会和你期望的完全一致:<aff id="aff1"><label>2</label>Laboratories for Human Nutrition and</aff>。

简单说,你需要把标签和纯文本拆分成独立的DOM节点(元素节点和文本节点),然后依次添加到父节点里,而不是用字符串拼接的方式一次性设置内容——DOM API设计就是让你通过节点操作来构建结构,而不是直接写标记字符串哦。

内容的提问来源于stack exchange,提问作者Oleh Kurpiak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:39:42