1. 程式人生 > >Java解析XML的四種方法比較

Java解析XML的四種方法比較

XML現在已經成為一種通用的資料交換格式,它的平臺無關性,語言無關性,系統無關性,給資料整合與互動帶來了極大的方便。XML在不同的語言裡解析方式都是一樣的,只不過實現的語法不同而已。基本的解析方式有兩種,一種叫SAX,另一種叫DOM。SAX是基於事件流的解析,DOM是基於XML文件樹結構的解析. 

java解析xml常用的四種方法有:

DOM,DOM4J,SAX,JDOM 

1.DOM生成和解析XML文件

DOM 解析xml文件時將讀取整個文件,然後構建一個駐留記憶體的樹結構,支援刪除、修改、重新排列等多種功能。缺點:將整個文件調入記憶體(包括無用的節點),浪費時間和空間

2.SAX生成和解析XML文件

SAX:事件驅動。當解析器發現元素開始、元素結束、文字、文件的開始或結束等時,傳送事件,程式設計師編寫響應這些事件的程式碼,儲存資料。優點:不用事先調入整個文件,佔用資源少;SAX解析器程式碼比DOM解析器程式碼小,適於Applet,下載。缺點:不是持久的;事件過後,若沒儲存資料,那麼資料就丟了;無狀態性;從事件中只能得到文字,但不知該文字屬於哪個元素;使用場合:Applet;只需XML文件的少量內容,很少回頭訪問;機器記憶體少;

3.JDOM生成和解析XML  

極大地減少了程式碼量,使用簡單,操作方便能實現基本的解析、建立等,但在底層,JDOM還是使用SAX(最常用)、DOM、Xanan文件。

4.DOM4J生成和解析XML文件

DOM4J 是一個非常非常優秀的Java XML API,具有效能優異、功能強大和極端易用使用的特點,同時它也是一個開放原始碼的軟體。如今你可以看到越來越多的 Java 軟體都在使用 DOM4J 來讀寫 XML,包括Hibernate和Sun 的 JAXM 也在用 DOM4J。

本文推薦使用DOM4J,附:DOM4J解析xml原始碼示例:

public List<Map> readXml(String xmlPath) throws DocumentException {
  List list=new ArrayList();  
  SAXReader saxReader = new SAXReader();  
  Document doc = saxReader.read(xmlPath);
  Element root = doc.getRootElement();
  for (Iterator it = root.elementIterator(); it.hasNext();) {

  Element content = (Element) it.next();
   List list = content.attributes();
    for (int i = 0; i < list.size(); i++) {
     Attribute attr = (Attribute) list.get(i);
     String key = attr.getName();
     String value = attr.getValue();
        map.put(key, value);
     }
    listMap.add(map);

 }
  return list;
 }

相關推薦

Java解析XML方法比較

XML現在已經成為一種通用的資料交換格式,它的平臺無關性,語言無關性,系統無關性,給資料整合與互動帶來了極大的方便。XML在不同的語言裡解析方式都是一樣的,只不過實現的語法不同而已。基本的解析方式有兩種,一種叫SAX,另一種叫DOM。SAX是基於事件流的解析,DOM是基於X

xml 解析方法

1  DOM解析 是將這個xml檔案裝入記憶體 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumen

oracle 批量更新方法比較

軟體環境 Windows 2000 + ORACLE9i 硬體環境 CPU 1.8G + RAM 512M 現在我們有2張表 如下: T1–大表 10000筆 T1_FK_ID T2–小表 5000筆 T2_PK_ID T1通過表中欄位ID與

Java解析xml檔案的方法

什麼是 XML? XML指可擴充套件標記語言(EXtensible Markup Language)XML 是一種標記語言,很類似 HTMLXML 的設計宗旨是傳輸資料,而非顯示資料XML 標籤沒有被預定義。您需要自行定義標籤。XML 被設計為具有自我描述性。XML 是

java解析XML方式小結

第一種:DOM。 DOM的全稱是Document Object Model,也即文件物件模型。在應用程式中,基於DOM的XML分析器將一個XML文件轉換成一個物件模型的集合(通常稱DOM樹),應用程式正是通過對這個物件模型的操作,來實現對XML文件資料的操作。通過DOM介面,應用程式可以在任何時候訪問X

詳解Java解析XML方法(轉載)

出處:http://developer.51cto.com/art/200903/117512.htm XML現在已經成為一種通用的資料交換格式,它的平臺無關性,語言無關性,系統無關性,給資料整合與互動帶來了極大的方便。對於XML本身的語法知識與技術細節,需要閱讀相關的技術文獻,這裡

Java解析XML方法詳解

package com.alisoft.facepay.framework.bean;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.IOException;  import

詳解Java解析XML方法

XML現在已經成為一種通用的資料交換格式,平臺的無關性使得很多場合都需要用到XML。本文將詳細介紹用Java解析XML的四種方法。 XML現在已經成為一種通用的資料交換格式,它的平臺無關性,語言無關性,系統無關性,給資料整合與互動帶來了極大的方便。對於XML本身的語法知識與

詳解Java解析XML方法—DOM/SAX/jdom/dom4j

        最近在研究XML檔案的生成和解析,網上資料很多,當然也參差不齊。寫的沒錯誤的通常是單獨介紹了1種方法,介紹全的常常執行不起來。         小哆把4種方法彙總了一下,執行驗證成功。     jar包免費下載:     XML在不同的語言裡解析方式都是

對DOM,SAX,JDOM,DOM4J方法解析XML文件的分析

文件加載 四種方法 結束 要求 每次 xml文件 基於 擴展方法 四種 ---恢復內容開始--- 1、DOM   與平臺無關的官方解析方式   DOM是一次性把xml文件加載到內存中,形成一個節點樹   對內存有要求 2、SAX   java提供的基於事件驅動的解

Java 處理 XML方法 --&amp;gt;附:XmlUtils

XML現在已經成為一種通用的資料交換格式,平臺的無關性使得很多場合都需要用到XML。本文將詳細介紹用Java解析XML的四種方法。         XML現在已經成為一種通用的資料交換格式,它的平臺無關性,語言無關性,系統

JAVA遍歷list方法及其效率比較

四種主要方法有: foreach for(Object ob : list){ } Iterator Iterator it = list.iterator(); while(it.hasNext()){        Object ob = it.nex

後端---JAVA解析XML文件的方式

XML解析——Java中XML的四種解析方式 XML是一種通用的資料交換格式,它的平臺無關性、語言無關性、系統無關性、給資料整合與互動帶來了極大的方便。XML在不同的語言環境中解析方式都是一樣的,只不過實現的語法不同而已。   XML的解析方式分為四種: 一.DOM解析 1、JAXP

Java解析XML檔案的方式

1 import javax.xml.parsers.SAXParser; 2 import javax.xml.parsers.SAXParserFactory; 3 4 import org.xml.sax.Attributes; 5 import org.xml.sax

java讀取xml檔案的方法

1 import javax.xml.parsers.SAXParser; 2 import javax.xml.parsers.SAXParserFactory; 3 4 import org.xml.sax.Attributes; 5 import org.x

java解析xml檔案方式

1.介紹 1)DOM(JAXP Crimson解析器) DOM是用與平臺和語言無關的方式表示XML文件的官方W3C標準。DOM是以層次結構組織的節點或資訊片斷的集合。這個層次結構允許開發人員在樹中尋找特定資訊。分析該結構通常需要載入整個文件和構造層次結構,然後才能做任何工作。由於它是基於資訊層次的,因而

Java中遍歷list方法效率比較

Java遍歷List四種方法的效率對比 遍歷方法簡介 Java遍歷List的方法主要有: (1)for each for(bject o :list)    {    } [java] view plain copy print? (2)Iterator Iterator iter = lis

java 遍歷arrayList的方法

void 線程安全 接口 線程同步 object類 轉型 依次 調用 values package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.Lis

java語言復制數組的方法

原生態 png mit 宋體 angle 連接 earch oat nowrap 參考:http://www.cnblogs.com/dream-it-possible/p/7018804.html 來源於牛客網的一道選擇題: JAVA語言的下面幾種數組復制方法中,哪個

Java獲取系統時間的方法

min ont 時間格式 總結 int ava nth second 單獨 1、Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Sys