java - 如何从字符串创建元素

标签 java xml jdom

当我们尝试解析节点内容并将其转换为字符串时,会生成如下所示的字符串内容,

&l t; rootNode &g t;
......
&l t;/rootNode &g t;

当我们尝试使用 JDOM 元素在 XML 中再次添加字符串内容时,预计会如下所示进行追加,但我们得到的值与上面所示的相同,而无需进行 unicode 转换过程。

<rootNode>
 .....
</rootNode>

我们尝试过 StringUtils、XMLEscapeUtils,但没有得到预期的结果,有人可以指导我走上正确的道路吗?

编辑

从OP的评论中添加代码:

String inputStr = "<rootnode></rootnode>";
org.jDom.Element Element e = new Element("parentnode");
e.addContent(inputStr); 

最佳答案

问题: JDOM's Element.addContent(String)正在将您的 inputStr 添加为未解析的字符串。

解决方案: 相反,您需要将字符串解析为元素,然后将其添加到 e 中。您必须将其读入其自己的文档中,然后将其分离并移动。这是一个草图:

import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.Document;
import java.io.StringReader;
....   
String inputStr = "<rootnode></rootnode>";
Element e = new Element("parentnode");
StringReader stringReader = new StringReader(inputStr);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(stringReader);
Element rootE = doc.getRootElement();
e.addContent(rootE.detach());  // <== Add an Element rather than a String

关于java - 如何从字符串创建元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939061/

相关文章:

java - 为什么 JDOM 的 getChild() 方法返回 null?

java - 如何从Web服务器动态获取数据?

java - 如何在libgdx中保持相同的跳跃高度

java - Java 运算符优先级到底是如何工作的?

html - XML 文件中的本地 XSL 引用

java - txt 文件或 JDOM 或 DOM 或

java - 将字段值插入数据库

javascript - 无法以正确的方式在无序列表中显示 xml 元素的内容

c# - 如何创建表示 DateTime 中日期的 XElement 类型为 xs :Date

java - XML 解析 : JDOM or RegEx ? 哪个更快?