加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何将xml节点(作为字符串)附加到现有的XML Element节点(仅使用j

发布时间:2020-12-16 23:20:16 所属栏目:百科 来源:网络整理
导读:(免责声明:在RingoJS中使用Rhino) 假设我有一个带元素的文档,我看不出如何将节点作为字符串附加到此元素.为了将字符串解析为xml节点然后将它们附加到节点,我尝试使用documentFragment,但我无法到达任何地方.简而言之,我需要像.NET的.innerXML一样简单,但它
(免责声明:在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);

由于doc和doc2是两个不同的文档,诀窍是将节点从一个文档导入到另一个文档,这是通过上面的importNode api完成的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读