(免责声明:在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完成的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。