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

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

Java API for XML Parsing(JAXP)演進

2019-11-18 10:48:26
字體:
來源:轉載
供稿:網友

  簡介
  
  在1998年W3Cxml1.0推薦標準發布之后,XML就開始變得很流行。Sun公司就是在那時候規范java Community PRocess (JCP),同時JAXP(JSR-05)的第一版在2000早些時候發布了。這個版本得到了很多工業集團的支持,譬如(以年月次序排列)BEA Systems, Fujitsu Limited, Hewlett-Packard, IBM, Netscape Communications, Oracle, and Sun Microsystems, Inc.
  
  JAXP (全稱Java API for XML Parsing)的可插拔性(pluggability)在開發社區里引起很大的轟動。這點也是JAXP的精華所在。開發人員可以編寫自己的xml處理器,只要它符合JAXP的APIs,這樣底層不同的xml處理器可以任意切換而不用改應用程序的代碼。
  
  那JAXP到底是什么呢?首先 這個P有點迷惑,它代表Parsing還是Processing呢?
  
  因為JAXP1.0的時候只支持解析(parsing),所以JAXP全稱應該是Java API for XML Parsing.
  
  但在JAXP1.1的時候,XSL-T被推薦用作XML的轉換(transformation)處理。很遺憾,當時W3C XLT-T的標準規范(specification)里沒有提供任何用來轉換(transformation)處理的APIs。因此JAXP1.1的專家組推薦了一組APIs叫Transformation API for XML (TrAX)。
  
  從此JAXP就叫Java API for XML Processing. JAXP通過逐步進化,支持的東西也越來越多
  
  不僅僅是解析xml文件(譬如在解析文檔的時候根據schema校驗有效性,根據預解析的schema來校驗文檔有效性,計算XPath 表達式等等)。
  
  由于底層用來處理xml文檔的可插拔的processor是任意編寫的,只要它符合JAXP的規范,因此JAXP 是一個輕量級的處理xml文件的處理APIs。(譯者注:JAXP只是一個api規范而已,真正底層實現是任意的。后面會有具體介紹。)
  
  使用JAXP來解析XML文檔
  
  JAXP支持基于對象和基于事件的兩種解析方式?;趯ο蟮慕馕?,到目前為止只支持W3C DOM解析,JAXP的專家組可能在JAXP的將來版本中會支持J-DOM規范?;谑录慕馕?,只有SAX 解析模式被支持,另一個基于事件的解析模式叫Pull Parsing,本來它應該是JAXP的一部分。但是對于Pull Parsing存在有一份不同的JSR (#173)文檔,也就是大家所知道的Streaming API for XML (StAX) parsing,現在我們對于那個也沒什么更多的可以做了。
  
 Java API for XML Parsing(JAXP)演進(圖一)
  Figure 1: Various mechanism of parsing XML

  
  使用SAX來解析XML文檔
  
  SAX APIs 是在1998年的早些時候由David Megginson提出的,目標是成為基于事件驅動的xml文檔解析模式的標準API(這里你可以的到一些 SAX 的歷史信息)。即使這樣,SAX仍不是W3C 的REC。但毫無疑問實際中它是行業內解析XML文檔的標準。
  
  SAX 是一種基于事件的解析模式,是push-parsing原理,解析文檔的時候,當碰到<opening> 標簽, </closing>標簽 或字符等,SAX 都會產生相應的事件(event)。一個SAX解析器解析XML文檔的時候,把文檔看作為一個流,依次產生相應的事件報告給已注冊的content handler, org.xml.sax.ContentHandler,假如有錯誤,錯誤會報告給error handler, org.xml.sax.ErrorHandler.
  
  假如你不注冊一個error handler,那你就根本不會知道在解析XML文檔的時候有沒有錯誤產生和錯誤是什么。因此,在SAX解析XML文檔的時候注冊一個error handler是極其重要的。
  
  假如程序需要知道有什么事件產生了(并且想處理此事件),那你必須實現org.xml.sax.ContentHandler 接口并注冊給 SAX解析器。一個典型的事件被觸發的順序是
  
  startDocument, startElement, characters, endElement, endDocument。
  
  startDocument 僅僅被觸發一次而且是在觸發其它event之前。同樣,endDocument僅僅被觸發一次而且是在整個文檔被成功解析之后。你可以從SAX javadocs中獲取更具體的信息。
  
 Java API for XML Parsing(JAXP)演進(圖二)
  Figure 2: SAX Parsing XML

  
  使用JAXP,通過SAX parse XML document的代碼片斷:
  
  SAXParserFactory spfactory = SAXParserFactory.newInstance();
  spfactory.setNamespaceAware(true);
  SAXParser saxparser = spfactory.newSAXParser();
  //write your handler for processing events and handling error
  DefaultHandler handler = new MyHandler();
  //parse the XML and report events and errors (if any) to the handler
  saxparser.parse(new File("data.xml"), handler);
  
  文檔對象模型解析
  
  DOM 解析是基于對象的原理,當用DOM解析XML文檔時它會在內存中生成一個樹形的結構來表示一個XML文檔。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产免费一区二区三区香蕉精| 久久精品99国产精品酒店日本| 国产精品免费电影| 日韩中文在线中文网三级| 孩xxxx性bbbb欧美| 中国日韩欧美久久久久久久久| 成人网在线免费观看| 亚洲精品国精品久久99热| 国色天香2019中文字幕在线观看| 91精品久久久久久久久久另类| 中文字幕精品www乱入免费视频| 97色在线播放视频| 久久精品久久久久久| 美日韩在线视频| 亚洲视频免费一区| 日韩中文第一页| 国内精品久久久久伊人av| 亚洲黄一区二区| 日韩电影大全免费观看2023年上| 国产精品视频午夜| 欧美黑人一级爽快片淫片高清| 日韩黄色高清视频| 欧美色欧美亚洲高清在线视频| 久久久免费电影| 日韩视频免费观看| 色哟哟入口国产精品| 欧美最近摘花xxxx摘花| 精品呦交小u女在线| 国产综合视频在线观看| 日韩久久精品成人| 国产91色在线|免| 国产精品一区二区久久久| 日韩视频中文字幕| 91免费人成网站在线观看18| 日本精品久久电影| 黑人欧美xxxx| 在线视频精品一| 国产精品九九九| 亚洲最大的av网站| 久久视频免费观看| 国产精品欧美激情在线播放| 久久久久成人精品| 欧美日韩加勒比精品一区| 欧美精品情趣视频| 亚洲天堂网站在线观看视频| 国产精品视频26uuu| 97精品久久久中文字幕免费| 日韩av一区在线观看| 欧美老女人性生活| 另类美女黄大片| 国产福利视频一区二区| 欧美激情综合色| 久久香蕉国产线看观看网| 欧美—级a级欧美特级ar全黄| 国产99视频精品免视看7| 亚洲a在线播放| 亚洲视频在线观看网站| 欧美大片在线看免费观看| 精品亚洲永久免费精品| 国产精品色悠悠| 亚洲成人三级在线| 欧美在线视频a| 福利视频一区二区| 日韩中文在线观看| 2019国产精品自在线拍国产不卡| 精品国产拍在线观看| 日韩av片电影专区| 国产视频观看一区| 亚洲男人天堂网| 91在线免费观看网站| 久久国产天堂福利天堂| 久久夜色精品国产亚洲aⅴ| 国产精品美女久久久免费| 日韩av在线免费| 啊v视频在线一区二区三区| 成人在线免费观看视视频| 亚洲电影免费在线观看| 亚洲欧美日本伦理| 91香蕉国产在线观看| 亚洲一区二区中文字幕| 国产精品爽爽ⅴa在线观看| 国产精品久久久久免费a∨| 国产在线一区二区三区| 韩剧1988免费观看全集| 日本三级久久久| 91精品国产高清久久久久久| 成人福利网站在线观看11| 亚洲电影免费观看| 中文字幕无线精品亚洲乱码一区| 亚洲v日韩v综合v精品v| 欧美日韩一区二区在线| 久久精品99久久久久久久久| 日韩中文视频免费在线观看| 欧美激情视频给我| 97国产精品视频| 久久久亚洲网站| 青青草成人在线| 亚洲男人天堂2024| 日本久久久久久久久久久| 亚洲美女精品久久| 精品日韩美女的视频高清| 亚洲成人网av| 亚洲精品国产福利| 亚洲精品色婷婷福利天堂| 中文综合在线观看| 中文字幕亚洲专区| 在线观看国产精品日韩av| 亚洲人精品午夜在线观看| 久久99精品国产99久久6尤物| 亚洲综合精品伊人久久| 国产成人亚洲综合91| 欧美精品videossex性护士| 性色av一区二区三区免费| 国产成人精品在线| 国内伊人久久久久久网站视频| 91视频国产一区| 亚洲福利小视频| 久久久久久网站| 日本一区二区在线免费播放| 亚洲精品电影网在线观看| 亚洲天堂男人天堂女人天堂| 国产精品久久久久久久久久久不卡| 国产精品尤物福利片在线观看| 2019国产精品自在线拍国产不卡| 亚洲一区二区三区乱码aⅴ| 亚洲网站视频福利| 欧美一区二区三区免费视| 人九九综合九九宗合| 国产欧美精品一区二区三区-老狼| 亚洲va欧美va国产综合久久| 高清日韩电视剧大全免费播放在线观看| 一本一道久久a久久精品逆3p| 黄色成人在线播放| 久久亚洲国产成人| 美日韩精品免费观看视频| 久久精品视频在线播放| 久久噜噜噜精品国产亚洲综合| 国产在线视频一区| 国内精品中文字幕| 亚洲色图av在线| 成人h视频在线观看播放| 色av吧综合网| 亚洲国产日韩欧美在线图片| 1769国产精品| 欧美激情小视频| 欧美日韩亚洲一区二| 97国产suv精品一区二区62| 7777精品久久久久久| 午夜精品国产精品大乳美女| 亚洲精品小视频在线观看| 国产精品久久久久7777婷婷| 成人免费网视频| 日韩激情在线视频| 欧美一级视频一区二区| 亚洲高清福利视频| 一区二区三区 在线观看视| 欧美壮男野外gaytube| 久久久999成人| 91精品久久久久久久久| 亚洲国产欧美一区二区三区久久| 日韩一区在线视频| 亚洲天堂av在线免费| 欧美精品18videosex性欧美| 欧美中文字幕在线视频|