一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java解析XML格式數據的方法詳解

Java解析XML格式數據的方法詳解

2020-01-12 14:47hebedich JAVA教程

這篇文章主要介紹了Java解析XML格式數據的方法,并展示了較為常用的Java dom來解析XML的例子,需要的朋友可以參考下

最初,XML 語言僅僅是意圖用來作為 HTML 語言的替代品而出現的,但是隨著該語言的不斷發展和完善,人們越來越發現它所具有的優點:例如標記語言可擴展,嚴格的語法規定,可使用有意義的標記,內容存儲和表現分離等等優勢注定了該語言從誕生之日起就會走向輝煌。 XML 語言在成為 W3C 標準之后進入到了一個快速發展的時期,當然它本身所具有的一系列優點和優勢也注定了各大技術廠商對它的偏愛,Java 作為軟件行業的一種開發技術也迅速作出了反應,出現了多種對 XML 支持的工具,本文將會從這個角度對 Java 處理 XML 的幾種主流技術進行介紹,希望能對您有所幫助。
Java 有哪些優秀的類庫及工具便于程序員對 XML 進行處理 ?

XML 三種解析方式簡介
大名鼎鼎的 DOM

說它大名鼎鼎可是一點不為過,DOM 是 W3C 處理 XML 的標準 API,它是許多其它與 XML 處理相關的標準的基礎,不僅是 Java,其它諸如 Javascript,PHP,MS .NET 等等語言都實現了該標準, 成為了應用最為廣泛的 XML 處理方式。當然,為了能提供更多更加強大的功能,Java 對于 DOM 直接擴展工具類有很多,比如很多 Java 程序員耳熟能詳的 JDOM,DOM4J 等等, 它們基本上屬于對 DOM 接口功能的擴充,保留了很多 DOM API 的特性,許多原本的 DOM 程序員甚至都沒有任何障礙就熟練掌握了另外兩者的使用,直觀、易于操作的方式使它深受廣大 Java 程序員的喜愛。
綠色環保的 SAX
SAX 的應運而生有它特殊的需要,為什么說它綠色環保呢,這是因為 SAX 使用了最少的系統資源和最快速的解析方式對 XML 處理提供了支持。 但隨之而來繁瑣的查找方式也給廣大程序員帶來許多困擾,常常令人頭痛不已,同時它對 XPath 查詢功能的支持,令人們對它又愛又恨。
默默無聞的 Digester:XML 的 JavaBean 化
Digester 是 apache 基金組織下的一個開源項目,筆者對它的了解源于對 Struts 框架的研究,是否有很多程序員想要一解各大開源框架的設計甚至想要自己寫一個功能強大的框架時會碰到這樣一個難題: 這些形形色色的用 XML 語言標記的框架配置文件,框架底層是用什么技術來解析呢? DOM 解析耗費時間,SAX 解析又過于繁瑣,況且每次解析系統開銷也會過大, 于是,大家想到需要用與 XML 結構相對應的 JavaBean 來裝載這些信息,由此 Digester 應運而生。它的出現為 XML 轉換為 JavaBean 對象的需求帶來了方便的操作接口,使得更多的類似需求得到了比較完美的解決方法, 不再需要程序員自己實現此類繁瑣的解析程序了。與此同時 SUN 也推出了 XML 和 JavaBean 轉換工具類 JAXB,有興趣的讀者可以自行了解。


下面來看一個Java dom解析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
import java.io.*; 
import org.w3c.dom.*; 
import org.xml.sax.SAXException; 
import javax.xml.parsers.*; 
public class Xml { 
  public static void main(String[] args) { 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    try
      DocumentBuilder builder = factory.newDocumentBuilder(); 
      Document doc = builder.parse(new File("E:\\work\\test\\xml1.xml")); 
      NodeList nl = doc.getElementsByTagName("book"); 
      for (int i = 0; i < nl.getLength(); i++) { 
        System.out.println(nl.item(i).getAttributes().item(0)); 
        System.out.println(doc.getElementsByTagName("title").item(i) 
            .getFirstChild().getNodeValue()); 
        System.out.println(doc.getElementsByTagName("title").item(i) 
            .getAttributes().item(0)); 
        System.out.println(doc.getElementsByTagName("author").item(i) 
            .getFirstChild().getNodeValue()); 
        System.out.println(doc.getElementsByTagName("year").item(i) 
            .getFirstChild().getNodeValue()); 
        System.out.println(doc.getElementsByTagName("price").item(i) 
            .getFirstChild().getNodeValue()); 
        System.out.println(); 
      
    } catch (ParserConfigurationException e) { 
      e.printStackTrace(); 
    } catch (SAXException e) { 
      e.printStackTrace(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    
  

 xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<bookstore>
<book category="COOKING">
 <title lang="en">Everyday Italian</title>
 <author>Giada De Laurentiis</author>
 <year>2005</year>
 <price>30.00</price>
</book>
<book category="CHILDREN">
 <title lang="en">Harry Potter</title>
 <author>J K. Rowling</author>
 <year>2005</year>
 <price>29.99</price>
</book>
<book category="WEB">
 <title lang="en">Learning XML</title>
 <author>Erik T. Ray</author>
 <year>2003</year>
 <price>39.95</price>
</book>
</bookstore>

結果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
category="COOKING"
Everyday Italian
lang="en"
Giada De Laurentiis
2005
30.00
 
category="CHILDREN"
Harry Potter
lang="en"
J K. Rowling
2005
29.99
 
category="WEB"
Learning XML
lang="en"
Erik T. Ray
2003
39.95

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产真实伦对白在线播放 | 高跟翘臀老师后进式视频 | 大伊香蕉精品视频一区 | 久久最新地址获取 | 97久久免费视频 | 国产精品欧美一区二区 | 草莓秋葵菠萝蜜绿巨人污 | 日韩高清一区二区三区不卡 | 欧美成黑人性猛交xxoo | 波多野结中文字幕在线69视频 | 欧美区日韩区 | 日本动漫啪啪动画片mv | 国产福利一区二区在线精品 | 日本厕所spy2wc | 好大好深好舒服 | 久久精品国产免费 | 亚洲激情在线 | 色多多在线观看视频 | 欧美日韩视频在线第一区二区三区 | 好大好硬好深好爽想要小雪 | xxxx18日本视频xxxxx | 亚洲成人影院在线 | 成人精品视频 成人影院 | xxoosex久久久久久 | 乳环贵妇堕落开发调教番号 | 偷拍自拍校园春色 | 男男浴室吸乳play | 男女激情网 | 国产精品日韩在线观看 | 热热99| 国产欧美一区二区三区精品 | 精品久久久久久 | 果冻传媒在线视频播放观看 | gogort99人体专业网站 | 国产精品国产色综合色 | 高清不卡一区二区 | 精品国产一区二区三区在线观看 | 日本中文字幕在线观看视频 | 四虎影院网站 | 亚洲另类第一页 | 欧美日韩国产在线人成 |