Java 如何在XML中按id删除节点元素?
使用:Java 如何在XML中按id删除节点元素?,java,xml,Java,Xml,使用:javax.xml和org.w3c: public void removeNodeFromXML(File xmlfile_, String uuid) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.pars
javax.xml
和org.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看起来像这样
<Servers>
//remove this guy
<server ID="1236">
<name>Josh</name>
<port>1234</port>
<ip>12.2.2.3</ip>
</server>
<server ID="1237">
<name>John</name>
<port>1234</port>
<ip>12.2.2.3</ip>
</server>
</Servers>
//把这家伙带走
乔希
1234
12.2.2.3
约翰
1234
12.2.2.3
您可以使用:
Element element = doc.getElementById("1236");
element.getParentNode().removeChild(element);
这将为您提供ID为“1236”的元素。然后获取元素的父节点,并通过将ID为“1236”的元素传递给removeChild来删除该元素
看
希望这有帮助。您可以使用XPath选择特定的元素/属性。只需在网上搜索教程。您还应该阅读,其中包括简短的示例 XML文件的XPath表达式是:
/server[@ID='xxxx']