java 使用DOM4J解析XML文檔

DOM4J

dom4j是一個Java的XML API,是jdom的升級品,用來讀寫XML文件的。dom4j是一個十分優秀的
JavaXML API,具備性能優異、功能強大和極其易使用的特色,它的性能超過sun公司官方的dom技術,
同時它也是一個開放源代碼的軟件,能夠在SourceForge上找到它。java

使用步驟

  1. 下載DOM4J的jar包,並導入到工程中dom

  2. 建立 SAXReader對象性能

    SAXReader reader = new SAXReader();
  3. 經過read方法加載xml開放源代碼

    Document document = reader.read(new File("book.xml"));
  4. 獲取根節點code

    Element bookstore = document.getRootElement();
  5. 經過elementIterator方法獲取迭代器xml

    Iterator it = bookstore.elementIterator();
  6. 遍歷迭代器,獲取根節點下節點對象

    while(it.hasNext())
         Element book = (Element) it.next();
  7. 獲取節點屬性element

    List<Attribute> attrs = book.attributes();
         for(Attribute attr : attrs)
         {
             System.out.println("屬性"+attr.getName()+":"+attr.getValue());
         }
  8. 獲取節點的子節點。
    過程爲重複5.6.7。get

示例

下面是一個簡單的小例子,說明一下使用過程及步驟。it

book.xml

<?xml version="1.0" encoding="UTF-8" ?>
<bookstore>
    <book id="1">
        <name>111</name>
        <author>222</author>
    </book>
    <book id="2">
        <name>333</name>
        <author>444</author>
    </book>
</bookstore>

DOM4J.java

package com.lpp.test;

import java.io.File;
import java.util.Iterator;
import java.util.List;

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

public class DOM4J
{

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        //建立 SAXReader對象
        SAXReader reader = new SAXReader();
        
        try
        {
//經過read方法加載xml

Document document = reader.read(new File("book.xml"));
            //獲取根節點
            Element bookstore = document.getRootElement();
            //經過elementIterator方法獲取迭代器
            Iterator it = bookstore.elementIterator();
            //遍歷迭代器,獲取根節點下節點
            
            while(it.hasNext())
            {
                System.out.println("開始遍歷");
                Element book = (Element) it.next();
                
                List<Attribute> attrs = book.attributes();
                for(Attribute attr : attrs)
                {
                    System.out.println("屬性"+attr.getName()+":"+attr.getValue());
                }
                
                Iterator it2 = book.elementIterator();
                
                while (it2.hasNext())
                {
                    Element bookChild = (Element) it2.next();   

                    System.out.println("節點"+bookChild.getName() + ":" + bookChild.getStringValue());
                }
                System.out.println("結束遍歷");
            }
        } catch (DocumentException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}
相關文章
相關標籤/搜索