關於android/java中xml的解析

來源:互聯網
上載者:User

Http資料群組織方式

HTTP網路傳輸中的資料群組織方式有三種

1、Html

2、Xml

3、Json

XML稱為可延伸標記語言 (XML),它與HTML一樣,都是SGML(標準通用標記語言 (SGML)),XML是

Internet環境中跨平台的,依賴於內容技術,是當前處理結構化文檔資訊的有力工具,可延伸標記語言 (XML)XML是一種簡單的資料存放區語言,使用一系列簡單的標記描述資料。

XML結構:

<?xml version=”1.0” encoding=”UTF-8”>

<persons>

<person id=”23”>

<name>jack</name>

<age>30</age>

</person>

<person id=”20”>

<name>rose</name>

<age>25</age>

</person>

<persons>

 

XML的結構解析如下

1、節點

2、元素

3、屬性和屬性值

由於XML的擴充性強,致使它需要有穩定的基礎規則來支援擴充,

該文法規則是:

1、開始和結束標籤匹配

2、嵌套標籤不能互相嵌套

3、區分大小寫

 

Android中,解析Xml資料的三種方式:

1、DOM(org.w3c.dom)

“文件物件模型”方式,解析完的Xml將生產一個樹狀的結構對象

2、SAX(org.xml.sax)

SimpleAPI for XML 以事件的形式通知程式,對Xml進行解析。

3、XMLPULL(org.xmlpull.v1)

類似於SAX方式,程式以“拉取”的方式對xml進行解析

 

SAX技術

SAX是一種以事件驅動的XML api,由它定義的事件流可以指定從

解析器傳到專門的處理常式代碼的XML結構,簡單的講,它解析速度快

,佔用記憶體少,這種解析器比較適合android等行動裝置

使用SAX的優點:

因為SAX的優勢是流的方式處理,當遇到一個標籤的時候,並不會記錄下當前所碰到的標籤

也就是說,startEelement方法中,你所知道的資訊,僅僅是當前簽名的名字和屬性,至於標籤的嵌套結構,上層標籤的名字,是否有子項目和其它結構相關的資訊,都是不知道的。

 

 

 

PULL技術

Pull解析器的運行方式和sax解析器很相似,它提供了類似的事件

 如開始元素和結束元素,使用parser.next()可以進行下一個元素並且觸發相應的事件

事件將作為代碼被發送,因此可以使用一個switch來對事件進行選擇,然後進行相應處理。

當開始解析元素的時候,調用parser.nextText()方法可以獲得下一個Text類型的元素

PULL特點:

簡單的結構:一個介面,一個例外,一個工廠組成的pull解析器

簡單易用:pull解析器只有一個重要的方法next方法,他被用來檢索下一個

事件,而它只有5個常用的屬性

1、STARTDOCUMENT

2、START_TAG

3、TEXT

4、END_TAG

5、END_DOCUMENT

 

 

 

DOM技術

DOM是一種用於xml文件物件模型,可用於直接存取xml文檔的各個部位,在dom中

文檔被類比為樹狀,其中xml文法的每一個組成部分都表示一個節點,DOM允許使用者遍曆文檔樹,從父節點移動到子節點和兄弟節點。並利用某節點類型特有的屬性(元素具有屬性

,文本節點具有文本資料)

節點(XML文檔中的每一個組成部分都是一個節點)

DOM是這樣規定的:
整個文檔是一個節點文檔

每一個XML標籤是一個元素節點

包含在XML元素中的文本是文本節點

每一個XML屬性是一個屬性節點

 

SAX、DOM和PULL的比較

SAX和PULL比DOM佔用的更少的記憶體解析方式,更加適合android手機開發

 

 

Demo(三種方式的都有):
http://download.csdn.net/detail/shuipingzildy/5300746

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.