如何在XML中删除id中的节点元素?

使用: javax.xmlorg.w3c

 public void removeNodeFromXML(File xmlfile_, String uuid) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlfile_); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer tFormer = tFactory.newTransformer(); //???? Element rootElement = doc.getRootElement(); rootElement.removeChild("1236"); //??? // Normalize the DOM tree to combine all adjacent nodes doc.normalize(); Source source = new DOMSource(doc); Result dest = new StreamResult(xmlfile_); tFormer.transform(source, dest); } 

XML看起来像这样

  //remove this guy  Josh 1234 12.2.2.3   John 1234 12.2.2.3   

您可以使用XPath选择特定元素/属性。 只需在网上搜索教程。 这是一个很好的。 您还应该阅读java.xml.xpath的Java-Doc ,其中包含简短示例。

XML文件的XPath-Expression是: /server[@ID='xxxx']

您可以使用:

 Element element = doc.getElementById("1236"); element.getParentNode().removeChild(element); 

这应该给你ID为“1236”的元素。 然后,您获取元素的父节点,并通过将ID为“1236”的元素传递给removeChild来删除元素。

请参阅此处以获取完整示例。

希望这可以帮助。