xml

原创
2016/03/11 13:53
阅读数 6
 package cn.demo;
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.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Demo01_Dom {
 @Test
 public void test1() throws Exception {
  // 1:创建XML解析器
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  // 2:解析Xml文件,返回一个org.w3c.Docuemnt内存文档对象
  Document dom = db.parse(new File("./files/studs.xml"));
  // 3:读取所有cls元素
  NodeList nl = dom.getElementsByTagName("cls");
  // 遍历所有List
  for (int i = 0; i < nl.getLength(); i++) {
   Element ele = (Element) nl.item(i);// 获取每一个元素<cls>
   String name = ele.getAttribute("name");// 获取name属性的值
   System.err.println(name);
   // 在ele下获取<stud>元素
   NodeList studs = ele.getElementsByTagName("stud");
   for (int j = 0; j < studs.getLength(); j++) {
    Element stud = (Element) studs.item(j);
    String id = stud.getAttribute("id");
    String studName = stud.getElementsByTagName("name").item(0).getTextContent();
    String studAge = stud.getElementsByTagName("age").item(0).getTextContent();
    NodeList tels = stud.getElementsByTagName("tel");
    String tel = "";
    if (tels.getLength() > 0) {
     tel = tels.item(0).getTextContent();
    }
    System.err.println(id + "," + studName + "," + studAge + "," + tel);
   }
   System.err.println("=====================");
  }
 }
 @Test
 public void test2() throws Exception {
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document dom = db.parse(new File("./files/studs.xml"));
  // 创建一个新的班
  Element newClsEle = dom.createElement("cls");// 只是在内存中创建
  newClsEle.setAttribute("name", "新班");
  Element newStudEle = dom.createElement("stud");
  newStudEle.setAttribute("id", "S100");
  Element eleName = dom.createElement("name");
  eleName.setTextContent("越了");
  newStudEle.appendChild(eleName);
  newClsEle.appendChild(newStudEle); // 获取根元素
  
  
  dom.getFirstChild().appendChild(newClsEle);
  // 使用transformer保存内存中的xml文件
  Transformer ts = TransformerFactory.newInstance().newTransformer();
  // 保存
  ts.transform(new DOMSource(dom), new StreamResult("./files/a.xml"));
 }
 
 @Test
 public void test3() throws Exception {
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document dom = db.parse(new File("./files/studs.xml"));
  
  
  NodeList nl  = dom.getElementsByTagName("cls");
  Element ele = (Element) nl.item(nl.getLength()-1);
  
  //dom.getFirstChild().removeChild(ele);
  ele.getParentNode().removeChild(ele);
  // 使用transformer保存内存中的xml文件
  Transformer ts = TransformerFactory.newInstance().newTransformer();
  // 保存
  ts.transform(new DOMSource(dom), new StreamResult("./files/studs.xml"));
 }
}

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部