XML——解析XML文档
【0】README
0.1)本文描述 轉(zhuǎn)自 core java volume 2, 旨在理解 XML——解析XML文檔 的基礎知識;
0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/chapter2/ParseXMLTest.java
【1】解析XML文檔相關
0)解析器
- 0.1)樹型解析器:(樹結構)
- 0.2)流機制解析器:讀入XML文檔時生成相應的事件;
1)解析器定義: 解析器是這樣一個程序, 它讀入一個文件,確認這個文件具有正確的格式,然后將其分解成各種元素,使得程序員能夠訪問這些元素; (干貨——解析器定義)
2)java 庫提供了兩種XML解析器: (干貨——兩種XML解析器定義)
- 2.1)樹型解析器:像文檔對象模型(Document Object Model, DOM)解析器這樣的樹型解析器,它們將讀入的XML文檔轉(zhuǎn)換為 樹結構;
- 2.2)流機制解析器:像XML簡單API(Simple API for XML, SAX)解析器這樣的流機制解析器, 它們在讀入XML文檔時生成相應的事件;
3)java XML 處理API(java API for XML Processing, JAXP)庫:使得實際上可以以插件形式使用這些解析器中的任意一個, 但JDK 包含了自己的DOM解析器;
- 3.1)解析步驟(steps):
- s1)創(chuàng)建一個 DocumentBuilder 對象,可以從DocumentBuilderFactory中得到這個對象,如:
- s2)可以從文件中讀入某個文檔:
- s2.1)或者用一個URL:
- s2.2)甚至可以指定一個任意輸入 流:
- Attention) 如果使用輸入流作為輸入源,那么對于那些以該文檔的位置為相對路徑而被引用的文檔,解析器將無法定位;但是可以安裝一個“實體解析器”來解決這個問題;
3.2)Document對象: 是XML 文檔的樹型結構在內(nèi)存中的表現(xiàn),它由實現(xiàn)了Node 接口及其各種子接口的類的對象構成;Node 接口及其子接口的層次結構如下: (干貨——Document對象)
3.2.1)可以通過調(diào)用 getDocumentElement 方法來啟動對文檔內(nèi)容的分析,它將返回根元素:
- 3.2.2)如果要得到該元素的子元素,使用 getChildNodes 方法,這個方法返回一個類型為 NodeList 的 集合;
- 3.2.3)item 方法:將得到指定索引值的項;
- 3.2.4)getLength方法: 則提供了項的總數(shù);
- 3.2.5) 看個荔枝:像這樣枚舉所有子元素:
- 3.2.6)如果只希望獲得子元素,可以忽略空白字符:
現(xiàn)在,只會看到兩個元素: 標簽名是 name 和 size;
3.3) 方法集合:
- 3.3.1) getLashChild, getNextSibling 方法;
- 3.3.2)枚舉節(jié)點屬性, getAtributes;
- 3.3.3)調(diào)用getNodeName 和getNodeValue 方法可以得到 屬性名和屬性值(getAttribute 方法);
- 3.3.4)知道屬性名, 可以直接獲取屬性值:
4)解析來自給定文件, URL 或輸入流的 XML 文檔,返回解析后的文檔的三種方法(Methods); (干貨——三種解析來自給定文件的方法,分別是文件對象,String對象 和 輸入流對象)
- M1) Document parse(File f) ;
- M2) Document parse(String url) ;
- M3) Document parse(InputStrema in) ;
總結
以上是生活随笔為你收集整理的XML——解析XML文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XML——XML概述
- 下一篇: asp.net ajax控件工具集 Au