这是我的 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/