我尝试创建org.w3c.dom.Element
,其中包含xml makr up和纯文本
我需要得到像这样的结果
<aff id="aff1"><label>2</label>Laboratories for Human Nutrition and</aff>
但我只能得到这个
<aff id="aff1"><label>2</label>Laboratories for Human Nutrition and</aff>
此代码创建aff
xml节点
Element aff = document.createElement("aff");
aff.setAttribute("id", "aff" + reference.id);
aff.setTextContent("<label>" + reference.label + "</label>" + reference.value);
也许有一些方法可以为文本创建虚拟xml节点,它没有标签,但允许设置其文本内容?
答案 0 :(得分:1)
setTextContent
不解析DOM结构接收的文本,但将其设置为文本节点。另外,为了防止潜在的结构性错误,它会将<
和>
等XML特殊字符转义为<
和>
。
如果您希望aff
元素包含其他元素,则不能将其设置为文本。您需要创建单独的元素和文本节点,然后将它们作为子元素附加。所以,如果你想拥有
<aff>
<label>1</label>
some text
<label>2</label>
another text
</aff>
你需要像
这样的代码Element aff = doc.createElement("aff");
Element label1 = doc.createElement("label");
label1.setTextContent("1");
Text text1 = doc.createTextNode("some text");
Element label2 = doc.createElement("label");
label2.setTextContent("2");
Text text2 = doc.createTextNode("another text");
aff.appendChild(label1);
aff.appendChild(text1);
aff.appendChild(label2);
aff.appendChild(text2);