gpt4 book ai didi

java - 如何将 xml 节点(作为字符串)附加到现有的 XML 元素节点(仅使用 java 内置函数)?

转载 作者:搜寻专家 更新时间:2023-11-01 01:22:36 26 4
gpt4 key购买 nike

(免责声明:在 RingoJS 中使用 Rhino)

假设我有一个包含元素的文档,我不知道如何将节点作为字符串附加到该元素。为了将字符串解析为 xml 节点,然后将它们附加到节点,我尝试使用 documentFragment 但我无法获得任何地方。简而言之,我需要像 .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(???);

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

[编辑] 在示例中并不明显,但我不应该知道变量“nodesToAppend”的内容。所以,请不要向我指出有关如何在 XML 文档中创建元素的教程。

最佳答案

您可以在 java 中执行此操作 - 您应该能够导出 Rhino 等效项:

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,所以技巧是将节点从一个文档导入另一个文档,这是通过上面的 importNode api

关于java - 如何将 xml 节点(作为字符串)附加到现有的 XML 元素节点(仅使用 java 内置函数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com