如何将XML节点(作为字符串)附加到现有的XML元素节点(仅使用Java内置)



(免责声明:使用Rhino Inside ringojs)

假设我有一个带有元素的文档,我看不出如何将节点作为字符串附加到此元素。为了将字符串解析为XML节点,然后将它们附加到节点上,我尝试使用文档fragment,但无法到达任何地方。简而言之,我需要的东西像.net的.innerxml一样容易,但是它不在Java API中。

var dbFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
var dBuilder = dbFactory.newDocumentBuilder();
var doc = dBuilder.newDocument();
var el = doc.createElement('test');
var nodesToAppend = '<foo bar="1">Hi <baz>there</baz></foo>';
el.appendChild(???);

我如何在不使用任何第三方库的情况下执行此操作?

[edit]在示例中并不明显,但我不应该知道变量" NodestoAppend"的内容。因此,请不要指出我有关如何在XML文档中创建元素的教程。

您可以在Java中执行此操作 - 您应该能够得出等效的犀牛:

DocumentBuilderFactory dbFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
Element el = doc.createElement('test');
doc.appendChild(el);

String xml = "<foo bar="1">Hi <baz>there</baz></foo>";
Document doc2 = builder.parse(new ByteArrayInputStream(xml.getBytes()));
Node node = doc.importNode(doc2.getDocumentElement(), true);
el.appendChild(node);

由于 docdoc2是两个不同的 Document s,所以诀窍是将节点从一个文档导入到另一个文档,这是用上面的 importNode api完成的

我认为您的问题就像这个问题,上面有答案:Java:如何读取和写XML文件?

或查看此链接http://www.mkyong.com/java/how-to-to-create-create-xml-file-in-java-dom/

最新更新