DOM4J解析XML(强大的XPath)

来源:互联网 发布:如何查询中文域名状况 编辑:程序博客网 时间:2024/06/10 07:45

<?xml version="1.0" encoding="UTF-8"?>


<书架> 
  <书> 
    <书名>JAVA就业培训教程</书名>  
    <页数>600</页数>  
    <作者>wanteng</作者> 
  </书>  
  <书> 
    <书名>XML入门</书名>  
    <作者>王腾</作者>  
    <价钱>43.00元</价钱> 
  </书> 
</书架>


public class Demo1 {


@Test
public void read() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();

Element book = (Element) root.elements("书").get(1);
String bookname = book.element("书名").getText();
System.out.println(bookname);
}

@Test
public void add() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();
Element book = root.element("书");
List list = book.elements();   //获得书标签下的所有标签

Element price = DocumentHelper.createElement("页数");
price.setText("600");

list.add(1,price);
//写入到XML中
OutputFormat format = OutputFormat.createPrettyPrint(); 
 format.setEncoding("UTF-8");
  
XMLWriter writer=new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write(document);
writer.close();
}

@Test
public void delete() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));

Element root = document.getRootElement();
Element book = root.element("书");
Element price = book.element("售价");
price.getParent().remove(price);


//写入到XML中
OutputFormat format = OutputFormat.createPrettyPrint(); 
 format.setEncoding("UTF-8");
  
XMLWriter writer=new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write(document);
writer.close();
}


}
0 0