码迷,mamicode.com
首页 > 其他好文 > 详细

使用dom4j解析xml文档

时间:2019-12-04 22:18:39      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:png   cat   junit   输出   对象   doc   pack   att   als   

先要导入包,

技术图片

 

 导入以后,新建一个xml文档,写入以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<web-app version="1.0">
    <servlet>
        <servlet-name>1</servlet-name>
        <servlet-class>xxx</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>1</servlet-name>
        <url-pattern>22</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file></welcome-file>
    </welcome-file-list>
</web-app>

然后写类:

package dom4j;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class TestDom4j {
    @Test
    public void Testdom4j() {
        try {
            //1.获取解析器
            SAXReader sr =new SAXReader();
            //2.获取document文档对象
            Document doc= sr.read("src/dom4j/web.xml");
            //3.获取根元素
            Element rootElement = doc.getRootElement();
//            System.out.println("根元素"+rootElement.getName());//获取根元素的名称
//            System.out.println(rootElement.attributeValue("version"));//获取根元素中verion的属性值
            //4.获取根元素的下一个子元素
            List<Element> children = rootElement.elements();
            //5.遍历子元素
            for (Element element : children) {
                if("servlet".equals(element.getName())){//如果元素的名字等于servlet
                    Element servletName = element.element("servlet-name");
                    Element servletClass = element.element("servlet-class");
                    System.out.println(servletName.getText());//输出servletName的文本内容
                    System.out.println(servletClass.getText());//输出servletClass的文本内容
                    
                }
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

使用Junit测试之后:

技术图片

 

 这样就可以获取,根元素,以及子元素,各种属性值等,更多方法如下:

elements()获取指定名称的所有子元素

element()获取指定名称的首个子元素

elementText()获取指定名称元素的文本值

 

 

思考:在写的过程中,要用list来接受,并且遍历根元素的所有子元素,为了加快效率,可以使用泛型,这样在后来的遍历中,直接什么也不用输入,只需要输入循环体里面的内容,减少了很多麻烦

使用dom4j解析xml文档

标签:png   cat   junit   输出   对象   doc   pack   att   als   

原文地址:https://www.cnblogs.com/tkg1314/p/11985665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!