Dom解析

我们通过Dom4j实现Dom解析,由于Dom4j不属于sun公司,所以要使用它,就要加载他的jar包。
1.对xml文件进行查询代码实现:

import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jcha {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        SAXReader reader=new SAXReader();
        Document document=reader.read("book.xml");
        Element element=document.getRootElement();
        //获取地一本书名的标签体
        //String name=element.element("书").element("书名").getText();
        //System.out.println(name);
        //获取其它几本书的名字
        List list=element.elements();
        for (int i = 0; i <4; i++) {
            Element name2=list.get(i);
            System.out.println(name2.element("书名").getText());
        }
    }

}

上面代码中read方法返回的是Document,根节点,而element方法返回的是子节点,这样就有了对这些数据操作的所有对象。
2.对xml文件中进行增加标签的操作:

public static void add() throws Exception{
        SAXReader reader=new SAXReader();
        Document document=reader.read("book.xml");
        Element element=document.getRootElement();
        //凭空创建一个标签,并且创建标签体
        Element price=DocumentHelper.createElement("特价");
        price.setText("400");
        //获取父类标签,将此标签,挂在到父类标签上去。
        Element book=element.element("书");
        book.add(price);
        //将加上的标签传到xml文件上去
        XMLWriter writer=new XMLWriter(new FileWriter("book.xml"),OutputFormat.createPrettyPrint());
        writer.write(document);
        writer.close();
    }

创建标签的操作是在内存中实现的,要想真正实现在xml文件中添加标签的操作,还要借助流。
3.实现删除标签体操作:

public static void delet() throws Exception{
        SAXReader reader=new SAXReader();
        Document document=reader.read("book1.xml");
        Element element=document.getRootElement();
        Element dename=element.element("书").element("书名");
        dename.getParent().remove(dename);
        XMLWriter writer=new XMLWriter(new FileWriter("book1.xml"),OutputFormat.createPrettyPrint());
        writer.write(document);
        writer.close();
    }

你可能感兴趣的:(Dom解析)