美文网首页
带你了解dom4j框架

带你了解dom4j框架

作者: 测试老杨 | 来源:发表于2018-08-05 12:58 被阅读82次

    dom4j简介

    dom4j是一个易用的,开源的JAVA操作XML的框架。

    解析xml格式数据的思路

    1、创建一个解析工具

        SAXReader reader = new SAXReader();
    

    2、对xml格式的数据进行读取(将读取的内容加载到内存里面)

        File file = new File("d:\\my.xml");//设置文件的路径
        //从文件里面读取内容,读取到的内容保存到doc对象里面
        Document doc = reader.read(file);
    

    3、通过doc对象获取根节点
    比如:

        Element root = doc.getRootElement();
    

    4、通过节点的element方法查找子节点(第一个)
    比如:

        Element firstChild = root.element("标签名");
    

    5、通过节点的elements方法查找出所有的子节点
    比如:

        List<Element> list = (List<Element>)root.elements("标签名");
    

    6、通过get方法获取对应下标的节点
    比如:

        Element node = list.get(1);
    

    7、通过节点的getText方法获取节点里面的文本内容
    比如:

        System.out.println(node.getText());
    

    案例实践——使用dom4j对抓取到的数据进行解析

    1、maven工程里面添加dom4j框架的依赖

            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
    

    2、使用浏览器打开fiddler工具导出的xml文件(了解数据的存储结构)

    image.png

    3、设计Java代码

    代码如下:

    package examples;
    
    import java.io.File;
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.testng.annotations.Test;
    
    public class XML51JobReadTest {
        /**
         * 解析xml格式数据的思路:
         *  1、创建一个解析工具
                SAXReader reader = new SAXReader();
            2、对xml格式的数据进行读取(将读取的内容加载到内存里面)
                File file = new File("d:\\my.xml");//设置文件的路径
                //从文件里面读取内容,读取到的内容保存到doc对象里面
                Document doc = reader.read(file);
            3、通过doc对象获取根节点
                比如:Element root = doc.getRootElement();
            4、通过节点的element方法查找子节点(第一个)
                比如:Element firstChild = root.element("标签名");
            5、通过节点的elements方法查找出所有的子节点
                比如:List<Element> list = (List<Element>)root.elements("标签名");
            6、通过get方法获取对应下标的节点
                比如:Element node = list.get(1);
            7、通过节点的getText方法获取节点里面的文本内容
                比如:System.out.println(node.getText());  
         * 
         * @throws Exception
         */
        @Test
        public void read() throws Exception{
            File file = new File("C:\\Users\\yangzc\\Desktop\\Fiddler_13-12-48.xml");
            SAXReader reader = new SAXReader();
            Document doc = reader.read(file);
            Element root = doc.getRootElement();
            Element body = root.element("resultbody");
            List<Element> items = (List) body.elements("item");
            for(Element e:items){
                System.out.println(e.element("jobname").getText()+"@"+e.element("coname").getText()+","+e.element("jobinfo").getText().replace(",", ",").replace("\n", " "));
            }
        }
    }
    
    

    4、运行结果

    image.png

    相关文章

      网友评论

          本文标题:带你了解dom4j框架

          本文链接:https://www.haomeiwen.com/subject/tklbvftx.html