黑马程序员技术交流社区

标题: 【成都校区*精品*Dom4J解析XML的范例浅析】 [打印本页]

作者: 小蜀哥哥    时间: 2018-11-8 13:13
标题: 【成都校区*精品*Dom4J解析XML的范例浅析】
前言
XML是可扩展标记语言的缩写,在编程领域是非常常用的,我们经常会用它进行数据的传输或者用作配置文件,那么对XML的操作的也会是我们需要掌握的一项技术,本文会使用Java语言,利用DOM4J这个非常优秀的开源库,探讨生成XML格式数据和解析XML数据的两个方面的问题。
1. Dom4J简介2. Dom4j的使用
以下是代码实现

[Java] 纯文本查看 复制代码
import java.io.File;
import java.util.Iterator;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

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

public class Dom4JTest2 {
    public static void main(String[] args) throws Exception {
        SAXReader saxReader = new SAXReader();
                // 获取文档对象        
        Document document = saxReader.read(new File("students.xml"));

        // 获取根元素
        Element root = document.getRootElement();
        System.out.println("Root: " + root.getName());

        // 获取所有子元素
        List<Element> childList = root.elements();
        System.out.println("total child count: " + childList.size());

        // 获取特定名称的子元素
        List<Element> childList2 = root.elements("hello");
        System.out.println("hello child: " + childList2.size());

        // 获取名字为指定名称的第一个子元素
        Element firstWorldElement = root.element("world");
        // 输出其属性
        System.out.println("first World Attr: "
                + firstWorldElement.attribute(0).getName() + "="
                + firstWorldElement.attributeValue("name"));
        System.out.println("迭代输出-----------------------");

        // 迭代输出
        for (Iterator iter = root.elementIterator(); iter.hasNext();) {
            Element e = (Element) iter.next();
            System.out.println(e.attributeValue("name"));               
        }

        System.out.println("用DOMReader-----------------------");
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        // 注意要用完整类名
        org.w3c.dom.Document document2 = db.parse(new File("students.xml "));        
        DOMReader domReader = new DOMReader();

        // 将JAXP的Document转换为dom4j的Document
        Document document3 = domReader.read(document2);               
        Element rootElement = document3.getRootElement();
        System.out.println("Root: " + rootElement.getName());
    }
}

控制台输出:
Root: studentstotal child count: 6hello child: 3first World Attr: name=wangwu迭代输出-----------------------lisilisi2lisi3wangwuwangwu2null用DOMReader-----------------------Root: students


3. 总结
到目前为止我们已经用Dom4j完成了生成XML文档以及解析XML文档的操作,相信大家已经对Dom4j有了一定的了解,更复杂的XML只是操作起来步骤更多而已,其思路都是类似的。祝大家学有所成




作者: 成都校区    时间: 2018-11-8 13:15
小蜀哥哥 发表于 2018-11-8 13:13
前言XML是可扩展标记语言的缩写,在编程领域是非常常用的,我们经常会用它进行数据的传输或者用作配置文件 ...

沙发一个
作者: 奔腾的黑马    时间: 2018-11-8 13:43

作者: 爱吃肉的小姐姐    时间: 2018-11-8 13:50

作者: gaoxur    时间: 2018-11-8 13:55
不懂
作者: gaoxur    时间: 2018-11-8 13:56
我是一个基础班的小菜鸟,表示看不懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2