目錄:
- XML簡介
- XML語法
- XML解析
一、XML簡介
什麼是XML?
全稱是Extensible Markup Language,譯作“可擴展標記語言”
跟JSON一樣,也是常用的一種用於交互的數據格式
一般也叫XML文檔(XML Document)
XML舉例
<videos>
<video name="小黃人 第01部" length="30" />
<video name="小黃人 第02部" length="19" />
<video name="小黃人 第03部" length="33" />
</videos>
二、XML語法
1.一個常見的XML文檔一般由以下部分組成
文檔聲明
元素(Element)
屬性(Attribute)
2.文檔聲明
在XML文檔的最前面,必須編寫一個文檔聲明,用來聲明XML文檔的類型。
最簡單的聲明
<?xml version="1.0" ?>
用encoding屬性說明文檔的字符編碼
<?xml version="1.0" encoding="UTF-8" ?>
3.元素
一個元素包括了開始標籤和結束標籤
擁有元素內容:<video>小黃人</video>
沒有元素內容:<video></video>
沒有元素內容的簡寫:<video/>
一個元素可以嵌套若干個子元素(不能出現交叉嵌套)
<videos>
<video>
<name>小黃人 第01部</name>
<length>30</length>
</video>
</videos>
規範的XML文檔最多隻有1個根元素,其他元素都是根元素的子孫元素
4.元素的注意
XML中的所有空格和換行,都會當做具體內容處理
下面兩個元素的內容是不一樣的
第1個
<video>小黃人</video>
第2個
<video>
小黃人
</video>
5.屬性
一個元素可以擁有多個屬性
<video name="小黃人 第01部" length="30" />
video元素擁有name和length兩個屬性
屬性值必須用 雙引號"" 或者 單引號'' 括住
實際上,屬性表示的信息也可以用子元素來表示,比如
<video>
<name>小黃人 第01部</name>
<length>30</length>
</video>
三、XML解析
要想從XML中提取有用的信息,必須得學會解析XML
提取name元素裏面的內容
小黃人 第01部提取video元素中name和length屬性的值
XML的解析方式有2種
DOM:一次性將整個XML文檔加載進內存,比較適合解析小文件
SAX:從根元素開始,按順序一個元素一個元素往下解析,比較適合解析大文件在iOS中,解析XML的手段有很多
蘋果原生: NSXMLParser:SAX方式解析,使用簡單 第三方框架: libxml2:純C語言,默認包含在iOS SDK中,同時支持DOM和SAX方式解析 GDataXML:DOM方式解析,由Google開發,基於libxml2 XML解析方式的選擇建議 大文件:NSXMLParser、libxml2 小文件:GDataXML