dom4j

DOM解析原理及结构模型

XML DOMHTML DOM类似,XML DOM将整个XML文档加载到内存,生成一个DOM树,

并获得一个Document对象,通过Document对象就可以对DOM进行操作

 

 

DOM中的核心概念就是节点,在XML文档中的元素、属性、文本等,在DOM中都是节点!

 

 

 

API使用

 

 

如果需要使用dom4j,必须导入jar包。

 

dom4j必须使用核心类SaxReader加载xml文档获得Document通过Document对象获得文档的根元素,然后就可以操作了。

 

 

 

步骤:

 

1.获取解析器

 

2.获得document文档对象

 

3.获取根元素

 

4.获取根元素下的子元素

 

5.遍历子元素

 

6.判断元素名称为servlet的元素

 

7.获取servlet-name元素

 

8.获取servlet-class元素

 

 

public static void main(String[] args) throws DocumentException {
        //创建SAXReader对象
        SAXReader sax=new SAXReader();
        //加载xml文件,获取Document对象
        Document doc=sax.read("src/com/oracle/demo02/web.xml");
        //获取根元素
        Element root=doc.getRootElement();
        System.out.println(root.getName());
        //获取根元素的所有子元素
        List<Element> list=root.elements();
        
        for(Element e:list){
            //找到servlet元素之后再获取里面子元素
            if(e.getName().equals("servlet")){
                Element servletName=e.element("servlet-name");
                Element servletClass=e.element("servlet-class");
                System.out.println(servletName.getText());
                System.out.println(servletClass.getText());
            }
            
        }

 

public static void main(String[] args) throws DocumentException, ClassNotFoundException, InstantiationException, IllegalAccessException {
        //创建SAXReader对象
        SAXReader sax=new SAXReader();
        //加载xml文件,获取Document对象
        Document doc=sax.read("src/com/oracle/demo03/web.xml");
        //获取根元素
        Element root=doc.getRootElement();
        //获取servlet元素
        Element servlet=root.element("servlet");
        //获取servlet元素中的servlet-class元素
        Element servletClass=servlet.element("servlet-class");
        //System.out.println(servletClass.getText());
        //获取MyServlet的class对象
        Class c=Class.forName(servletClass.getText());
        //快速创建对象
        MyServlet my=(MyServlet)c.newInstance();
        //调用方法
        my.init();
        my.service();
        my.destroy();
    }

 

posted @ 2020-05-07 16:19  龙茗夜雨  阅读(155)  评论(0编辑  收藏  举报