要操作的xml文件 product.xml
<?xml version="1.0" encoding="UTF-8"?>
<商品>
<产品>
<产品名>杠铃</产品名>
<规格>一台</规格>
<售价>500元</售价>
</产品>
</商品>
java源文件 XmlTest.java
package xmltest;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlTest {
/**
* @param args
* @throws Exception
*
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("src/product.xml"));
//parse(document);//解析出所有的节点
//find(document);//根据节点名查询节点
//delete(document);/删除节点
add(document);//增加节点
}
public static void delete(Document document) throws Exception {
NodeList nodes = document.getElementsByTagName("产品");
Node node = nodes.item(0);
node.getParentNode().removeChild(node);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer transform = tff.newTransformer();
transform.transform(new DOMSource(document), new StreamResult(new File("src/product.xml")));
}
public static void add(Document document) throws Exception {//增加各级节点
Node element = document.createElement("产品");
document.getElementsByTagName("商品").item(0).appendChild(element);
Node element1 = document.createElement("产品名");
element1.setTextContent("跑步机");
Node element2 = document.createElement("规格");
element2.setTextContent("一台");
Node element3 = document.createElement("售价");
element3.setTextContent("300");
NodeList nodes = document.getElementsByTagName("产品");
Node node = nodes.item(1);
node.appendChild(element1);
node.appendChild(element2);
node.appendChild(element3);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult(new File("src/product.xml")));
}
public static void find(Document document) {
NodeList nodes = document.getElementsByTagName("商品");
for(int i=0; i<nodes.getLength();i++){
System.out.println(nodes.item(i));
}
}
public static void parse(Node node) {
if(node.getNodeType()==node.ELEMENT_NODE){
System.out.println(node.getNodeName());
}
NodeList nodes = node.getChildNodes();
if(nodes.getLength()==0){
return;
}
for(int i=0;i<nodes.getLength();i++){//递归获取各个节点
Node list = nodes.item(i);
//System.out.println(list);
parse(list);
}
}
}