带你了解dom4j框架

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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 在微信看到一个特殊的转帖「帮华师女生找回那个他」,是一个华师女生写的,讲的是她两次在车站与一个同在广州大学城上学的...
    rokoo阅读 824评论 0 3
  • 清晨,当骤雨敲打着玻璃窗时,发出一阵阵猛烈的“刷,刷,刷”声响,我继续紧闭双眼赖在床上一动也不想动。 又是一个暴雨...
    一缕清风袭来阅读 330评论 0 3
  • 终于连和学校道别的时间也屈指可数了,我整个中学时代都在憧憬的大学生活,就这样匆匆度过。我不恍惚,因为所经历的已经足...
    长梦短作阅读 284评论 0 2