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