当我们尝试解析节点内容并转换为字符串时,生成的字符串内容如下所示
&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);
答案 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