苏木三少
错的不是你,而是这个世界。

XML文件学习-Dom4j方法解析

一、简述XML语言

定义:XML可扩展的标志语言,可以根据自己的需求定义自己的标签,也是由成对的标签来定义,标签我们自己可以定义,命名规则必须成对出现。

解析XML文件的方法:DOM,DOMAJ,SAX    DOM,DOM4J前两种属于一次读入再解析,SAX边读边解析适合大文件。

二、文章解析过程

2、1 导入Dom4j.jar

2、1、1 Dom4j-1.6.1.jar

2、2Dom4J常用对象:

2、2、1 SAXReader:读取xml文件到Document结构文件对象

2、2、2 Document;是一个xml文档对象数,类比html文件。

2、2、3 Element:元素节点。通过Document对象可以查找单个元素

步骤:

创建解析器

1
SAXReader reader = new SAXReader();

Document对象:通过解析器red方法获取

1
Document doc = reader.red("studentInfo.xml");

获取xml根节点

1
Element root = doc.getRootElement();

遍历解析子节点

以.xml文件结尾的就是xml文件。

三、Dom4j解析方法举例:

解析xml源码

xml源码:

运行效果:

 

xml源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student>
        <name>陶叔凯</name>
        <colleng>博文学院</colleng>
        <telephone>1800948526</telephone>
        <notes>男,23岁,本科,就读于博文学院</notes>
    </student>
    <student>
        <name>滕婷</name>
        <colleng>博文去学院</colleng>
        <telephone>1800948526</telephone>
        <notes>女,21岁,本科,就读于博1文学院</notes>
    </student>
    <student>
        <name>张三</name>
        <colleng>博文来学院</colleng>
        <telephone>1800948526</telephone>
        <notes>男,24岁,本科,就读于博2文学院</notes>
    </student>
    <student>
        <name>李四</name>
        <colleng>博文你学院</colleng>
        <telephone>1800948526</telephone>
        <notes>男,20岁,本科,就读于博3文学院</notes>
    </student>
</students>

 

解析xml源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.sumushao.xml;
import java.util.Iterator;

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

public class Dom4jText {

    public static void main(String[] args) {
        try {
            //创建解析器
            SAXReader reader = new SAXReader();
            //通过解析器的read方法配置文件读取到内存中,生成一个Document[org.dom4j]对象树
            Document document = reader.read("conf/Students.xml");
            //获取根节点
            Element root = document.getRootElement();
            //开始遍历跟节点
            for(Iterator<Element>rootIter = root.elementIterator();rootIter.hasNext();) {
                Element studenElt = rootIter.next();
                for(Iterator<Element> innerIter = studenElt.elementIterator();innerIter.hasNext();) {
                    Element innerElt = innerIter.next();
                    String innerValue = innerElt.getStringValue();
                    System.out.println(innerValue);
                }
                System.out.println("---------------------");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
赞(2) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » XML文件学习-Dom4j方法解析

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约