keywords: JDom、XPath、delete node
1. sample xml file:
<?xml version="1.0" encoding="utf-8"?>
<student info>
<student id="01">
<name>zhangsan</name>
<Tel>020-87072002</Tel>
</student>
<student id="02">
<name>lisi</name>
<Tel>020-87072002</Tel>
</student>
</student info>
Save this xml as sample.xml.
2. Delete a selected node of xml:
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.jdom.xpath.XPath;
public class DelNode{
public static void main(String[] args) throws Exception {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build("sample.xml");
Element root = doc.getRootElement();
XPath xpath=XPath.newInstance("/student info/student[@id='02']");
Element anode=(Element)xpath.selectSingleNode(doc);
anode.getParentElement().removeContent(anode);
Format format = Format.getPrettyFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
XMLOutputter outputter = new XMLOutputter(format);
FileOutputStream fo = new FileOutputStream("sample.xml");
outputter.output(doc, fo);
}
}