Dom4j入门指南(1)

来源:互联网 发布:网络路由器被限速 编辑:程序博客网 时间:2024/04/29 16:18

Dom4j入门指南(1)

XML

 

首先你要做的就是分析XML的document对象出来,这对于dom4j来说简直就是小菜一碟,看招

 

package com.mgoann.dom4j;

 

import java.net.MalformedURLException;

import java.net.URL;

 

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.io.SAXReader;

 

public class Mydom4j {

        

         public static void main(String[] args) {

                   try {

                            new Mydom4j().parse(new URL("http://www.w3school.com.cn/example/xmle/note.xml"));

                   } catch (MalformedURLException e) {

                            e.printStackTrace();

                   } catch (DocumentException e) {

                            e.printStackTrace();

                   }

         }

        

    public Document parse(URL url) throws DocumentException {

        SAXReader reader = new SAXReader();

        Document document = reader.read(url);

        return document;

    }

 

}

 

在这我说几句,要想使用好dom4j必须要对XML结构很熟悉,对W3C规定的XML标准有一定的了解,这里可以参考http://www.w3school.com.cn/x.asp,这个站点还算不错,对W3C提出的一些基础标准做一个系统的了解。

 

上面这段代码我想大家都能看懂,就是从一个url地址去读取document对象出来,至于怎么出来这不是我们所关心的,而我们应当把握dom4j是怎么封装的XML,正确的说应该是dom4j对规范的一个实现。Document在dom4j使用中至始至终一直都会出现,在这里你应该猜的差不多了,没错document就是代表XML的实体,它里面封装了所有XML信息,当我们取的时候就应当去里边去取。

 

遍历

 

要对document进行分析,就免不了对它进行遍历,由于dom4j采用java中的集合框架来实现,所有你会发现,遍历document就像遍历一个集合一样简单。你可以通过多种不同方法来返回一个标准Collections中的Iterator接口,而剩下的工作,我想你自己也应该清楚了吧,看招

 

public void bar(Document document) {

   

    Element root = document.getRootElement();

   

    for(Iterator it = root.elementIterator(); it.hasNext();) {

               Element element = (Element) it.next();

               String content = element.asXML();

               System.out.println(content);

    }

   

}

 

上面代码中出现了Element对象,这个Element类在整个dom4j中的地位也是举足轻重的,其他也是dom4j标准的一个实现。每个Element对象对应的就是一组XML标签。Dom4j中任何工作都是从RootElement开始的,rootelement就是整个XML的根元素,通过对根元素的分析可以得到整个XML中的任何一个元素。

而上面的方法就是从rootelement开始遍历整个XML,找出每一个elment,也就是每一组XML标签。下面该做什么事情,我想你应该迫不及待了吧。标签都有了,那标签里的东西还不是手到擒来吗(嘿嘿。。。。)。

 

以上输出结果是:

 

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

 


转自:http://blog.csdn.net/mgoann/article/details/4140389

0 0