java - 在java中的XML中设置属性/节点

标签 java xml dom xpath xml-parsing

这是我的 XML:

<root>
   <A id='1'>
     <B>Blah</B>
     <C>Test</C>
   </A>
</root>

我想在下面添加,所以我的最终 XML 如下:

<root>
   <A id='1'>
     <B>Blah</B>
     <C>Test</C>
     <D>New value</D>
    </A>
</root>

我可以使用 //A 在 XPath 中获取节点,但我不确定获取节点后如何添加或编辑值。

最佳答案

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
StringReader xml = new StringReader("<root><A id='1'><B>Blah</B><C>Test</C></A></root>");
Document doc = db.parse(new InputSource(xml));
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//A");
Element element = doc.createElement("D");
element.setTextContent("new value");
NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
for(int i = 0; i < nodes.getLength(); i++) {  
    Node node = nodes.item(i);
    node.appendChild(element);
}

关于java - 在java中的XML中设置属性/节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917514/

相关文章:

java - 当我使用 javac 编译多个 .java 文件时,出现一些 "duplicate class"错误,但我在代码中找不到错误

javascript - 在 IE7 中插入 HTMLElement 对象后,JQuery .find() 失败

java - Java中通过SSH远程访问mySQL

输入 URL 时添加字符的 Java Properties 类

java - Android - 动态访问xml资源

ruby-on-rails - 通过 JSON/XML 将二进制数据发送到 (Rails) RESTful 端点?

iphone - 如何在 XML (iOS) 中获取标签的一部分

javascript - 将外部库与 HyperHTML 结合使用

javascript - 为什么我的自定义 DOM 事件没有到达我的事件监听器?

java - 无法进入 if block - java