package dom;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomOperate{
public static void main(String[] args) throws Exception{
File xmlFile=new File("f://test/dom.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document=builder.parse(xmlFile);
/*
* 遍历xml
*/
NodeList nodeList=document.getElementsByTagName("root");
for(int i=0;i<nodeList.getLength();i++){
Element element=(Element)nodeList.item(i);
System.out.println(element.getTextContent());
}
//addNode(xmlFile, document);//添加节点
//deleteNode(xmlFile, document);//删除节点
}
/**
* 删除节点
* @param xmlFile
* @param document
*/
private static void deleteNode(File xmlFile, Document document) {
NodeList nodeList=document.getElementsByTagName("add");
Node node=nodeList.item(0);
node.getParentNode().removeChild(node);
submit(xmlFile, document);
System.out.println("Delete Node success");
}
/**
* 添加节点
* @param xmlFile
* @param document
*/
private static void addNode(File xmlFile, Document document){
NodeList nodeList=document.getElementsByTagName("root");
Node node=nodeList.item(0);
Element element=document.createElement("add");
element.setTextContent("测试添加");
node.appendChild(element);
submit(xmlFile, document);
System.out.println("Add Node Success");
}
/**
* 保存xml
* @param xmlFile
* @param document
*/
private static void submit(File xmlFile, Document document){
try {
TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer trans = transFactory.newTransformer();
Source source=new DOMSource(document);
Result result = null;
result = new StreamResult(new FileOutputStream(xmlFile));
trans.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
dom.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?><root>
<user>
<name>张三</name>
<age>12</age>
</user>
<user>
<name>李四</name>
<age>15</age>
</user>
</root>