亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在JDK 6.0中基于StAX分析XML數據

2019-11-18 11:35:15
字體:
來源:轉載
供稿:網友

  J2EE/xml開發者通常都是使用文檔對象模型(DOM)API或簡單的API for XML(SAX) API來分析XML文檔。然而,這些API都有其缺點。其中,DOM API的缺點之一是消耗大量的內存,因為在該XML文檔可以被導航之前,必須創建一個完整的XML文檔的內存結構。而SAX API的缺點在于,它實例了一種推分析模型API,其中分析事件是由分析器生成的。比較之下,StAX則是基于一種拉分析模型。在本文中,你將首先創建你自己的XML文檔,然后學習使用各種不同方法來對之進行分析;最后,我們使用事件生成的StAX拉方法。

  一、 推分析之于拉分析

  比較于推分析,拉分析具有如下一些優點:

  1. 在拉分析中,事件是由分析應用程序生成的,因此把分析規則提供到客戶端而不是分析器。

  2. 拉分析的代碼更簡單并且它比推分析有更少的庫。

  3. 拉分析客戶端能同時讀多個XML文檔。

  4. 拉分析答應你過濾XML文檔并且跳過分析事件。

  二、 了解StAX

  針對于XML的流式API(StAX),是在2004年3月的JSR 173規范中引入,這是一種針對XML的流式拉分析API。StAX是JDK 6.0提供的一種新特征,你可以從此處下載它的測試版本試用。

  一個推模型分析器不斷地生成事件,直到XML文檔被完全分析結束。但是,拉分析由應用程序進行調整;因此,分析事件是由應用程序生成的。這意味著,使用StaX,你可以推遲分析-在分析時跳過元素并且分析多個文檔。在使用DOM API的時候,你必須把整個的XML文檔分析成一棵DOM結構,這樣也就降低了分析效率。而借助于StAX,在分析XML文檔時生成分析事件。有關于StAX分析器與其它分析器的比較在此不多介紹。

  StAX API的實現是使用了java Web服務開發(JWSDP)1.6,并結合了Sun Java流式XML分析器(SJSXP)-它位于javax.xml.stream包中。XMLStreamReader接口用于分析一個XML文檔,而XMLStreamWriter接口用于生成一個XML文檔。XMLEventReader負責使用一個對象事件迭代子分析XML事件-這與XMLStreamReader所使用的光標機制形成對照。本教程將基于JDK 6.0中的StAX實現來完成對一個XML文檔的分析。

  其實,StaX僅僅是JDK 6.0所提供的XML新特征之一。新的JDK 6.0還提供了對針對于XML-Web服務的Java架構(JAX-WS)2.0,針對于XML綁定的Java API(JAXB) 2.0,XML數字簽名API的支持,甚至還支持SQL:2003 'XML'數據類型。

  三、 初步安裝

  假如你正在使用JDK 6.0,那么默認情況下,StAX API位于Classpath中。假如你在使用JWSDP 1.6,請把JWSDP 1.6 StAX API添加到classpath中。這需要把<jwsdp-1.6>/sjsxp/lib/ jsr173_api.jar和<jwsdp-1.6>/sjsxp/lib/sjsxp.jar添加到CLASSPATH變量中。在<jwsdp-1.6>目錄下安裝JWSDP 1.6。Jsr173_api.jar相應于JSR-173 API JAR,Sjsxp.jar相應于SJXSP實現JAR。

四、 使用XMLStreamWriter進行寫操作

  首先,你要創建將待分析的XML文檔。由StAX的XMLStreamWriter生成XML。然而,XMLStreamWriter的一個限制是,它不一定會生成良構的文檔-而且生成的文檔也不一定是有效的。你需要確保生成的XML文檔是良構的。列表1是一個由XMLStreamWriter生成的原始XML文檔的示例。

  在此,你試圖使用XMLStreamWriter API生成列表1中的catalog.xml。在本節中的代碼片斷節選自XMLWriter.java應用程序,顯示于列表2中。首先,你將導入StAX包類,請參考下列編碼:

import javax.xml.stream.*;
import javax.xml.stream.events.*;
import javax.xml.stream.XMLOutputFactory;
  你要從一個XMLOutputFactory中得到你的XMLStreamWriter。因此,首先你必須創建一個新的XMLOutputFactory:

XMLOutputFactory outputFactory=XMLOutputFactory.newInstance();
  接下來,創建一個FileWriter以輸出XML文檔-它將被生成到一個XML文件中:

FileWriter output=new FileWriter(new File("C:/STAX/catalog.xml"));
  接下來,創建一個XMLStreamWriter:

XMLStreamWriter XMLStreamWriterr=outputFactory.createXMLStreamWriter(output);
  現在,使用writeStartDocument()方法創建一個文檔開頭。添加要在XML聲明中指定的編碼和版本(記住,指定的編碼并不是生成的XML文檔的編碼)。假如你需要指定XML文檔的編碼,該怎么辦呢?當從一個XMLOutputFactory對象創建一個XMLStreamWriter對象時,你會這樣做:

XMLStreamWriter.writeStartDocument("UTF-8","1.0");
  使用writeComment()方法以輸出一個注釋:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色免费在线观看| 国产精品视频白浆免费视频| 亚洲伊人成综合成人网| 亚洲女性裸体视频| 久久97久久97精品免视看| 国产一区二区三区在线观看网站| 亚洲人成人99网站| 亚洲欧美日韩网| 久久在线免费视频| 国产精品久久久久久av| 精品成人久久av| 亚洲欧美一区二区精品久久久| 欧美大成色www永久网站婷| 欧美色另类天堂2015| 欧美怡红院视频一区二区三区| 7777精品久久久久久| 欧美裸体xxxx极品少妇| 国产精品永久免费在线| 亚洲欧洲国产一区| 日韩欧美极品在线观看| 精品国产91久久久久久老师| 992tv成人免费视频| 亚洲国语精品自产拍在线观看| 亚洲人成在线免费观看| 久热在线中文字幕色999舞| 中文字幕亚洲欧美一区二区三区| 亚洲性夜色噜噜噜7777| 国外成人在线直播| 91在线观看免费观看| 久久久国产一区二区| 亚洲va欧美va在线观看| 97精品一区二区视频在线观看| 欧美极品在线播放| 中文字幕精品www乱入免费视频| 26uuu亚洲国产精品| 国产精品极品尤物在线观看| 欧美有码在线观看| 国产精品白嫩美女在线观看| 国产91ⅴ在线精品免费观看| 亚洲永久免费观看| 国产精品美女主播在线观看纯欲| 日本国产欧美一区二区三区| xxxx欧美18另类的高清| 色悠悠久久88| 一本色道久久综合狠狠躁篇怎么玩| 国产91成人video| 亚洲一区二区三区毛片| 国产午夜精品视频| 最新国产成人av网站网址麻豆| 国产在线观看精品一区二区三区| 日韩高清有码在线| 亚洲色无码播放| 国产一区二区三区毛片| 在线播放国产一区中文字幕剧情欧美| 国产精品国内视频| 国内精品久久影院| 色香阁99久久精品久久久| 黑人巨大精品欧美一区二区免费| 懂色av影视一区二区三区| 国产精品99导航| 国产97人人超碰caoprom| 精品久久久久久久大神国产| 国产综合在线观看视频| 日韩电影在线观看免费| 91社区国产高清| 欧美日韩国产页| 精品中文字幕乱| 久久久久亚洲精品成人网小说| 久久久国产精品视频| 一区二区三区四区在线观看视频| 91精品国产自产在线观看永久| 成人福利网站在线观看11| 国产一区二区黄| 久久国产视频网站| 日韩精品视频在线播放| 欧美丰满老妇厨房牲生活| 亚洲永久免费观看| 亚洲成人久久久| 亚洲老头同性xxxxx| 亚洲精品美女网站| 都市激情亚洲色图| 91久久久久久久久久久| 91高清在线免费观看| 久久精品最新地址| 亚洲精品suv精品一区二区| 亚洲激情电影中文字幕| 国产婷婷成人久久av免费高清| 精品欧美国产一区二区三区| 性欧美xxxx视频在线观看| 亚洲色图综合久久| 久久99青青精品免费观看| 欧美亚洲视频在线观看| 欧美日韩中文字幕日韩欧美| 亚洲欧美国产精品久久久久久久| 精品亚洲一区二区三区在线观看| 8090成年在线看片午夜| 亚洲网站在线观看| 国产精品吊钟奶在线| 欧美精品第一页在线播放| 亚洲xxxxx性| 久久不射热爱视频精品| 米奇精品一区二区三区在线观看| 成人动漫网站在线观看| 91欧美激情另类亚洲| 欧美激情在线观看视频| 久久精品国产免费观看| 亚洲18私人小影院| 国产精品扒开腿爽爽爽视频| 亚洲精品网站在线播放gif| 精品福利在线观看| 欧美日韩午夜视频在线观看| 久久久999国产精品| 欧美日韩国产在线播放| 日产日韩在线亚洲欧美| 亚洲自拍偷拍色图| 国产精品一区二区性色av| 亚洲性日韩精品一区二区| 成人在线观看视频网站| 最近中文字幕日韩精品| 一区二区三区www| 91精品久久久久久综合乱菊| 亲子乱一区二区三区电影| 2020国产精品视频| 亚洲精品99久久久久| 亚洲成人免费在线视频| 欧美另类第一页| 国产精品高清网站| 国产精品91在线| 日韩欧美综合在线视频| 中文字幕精品www乱入免费视频| 一个人看的www久久| 久久久久这里只有精品| 成人午夜在线影院| 欧美日韩国产精品一区二区不卡中文| 精品亚洲国产成av人片传媒| 亚洲精品动漫100p| 日韩在线观看你懂的| 国产一区二区三区欧美| 国产一区二区黄| 欧美裸体xxxx极品少妇软件| 欧美极品少妇xxxxⅹ喷水| 性视频1819p久久| 亚洲免费av片| 欧美裸体xxxx| 亚洲精品99久久久久中文字幕| 日韩精品www| 欧美插天视频在线播放| 精品久久久久久久久久国产| 国产欧美中文字幕| 亚洲色图25p| 在线观看久久av| 欧美xxxx18国产| 欧美一乱一性一交一视频| 精品久久久久久久久久| 国产有码在线一区二区视频| 欧洲成人午夜免费大片| 亚洲国产成人精品久久久国产成人一区| 国产日韩欧美在线| 欧美一级大片在线观看| 77777少妇光屁股久久一区| 亚洲午夜久久久影院| 日韩国产精品一区| 久久99国产精品自在自在app| 国产成人精品久久亚洲高清不卡|