如何从字符串创建元素

时间:2015-01-14 09:00:39

标签: java xml jdom

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

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

当我们尝试使用JDOM Element在XML中再次添加字符串内容时,它应该如下所示附加,而不是在没有unicode转换过程的情况下获得上面显示的值。

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

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

修改

从OP的评论中添加代码:

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

1 个答案:

答案 0 :(得分:1)

问题: 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