Android解析

XML
可擴(kuò)展標(biāo)記語(yǔ)言,XML的設(shè)計(jì)宗旨是傳輸和存儲(chǔ)數(shù)據(jù),HTML用來(lái)顯示數(shù)據(jù),焦點(diǎn)是數(shù)據(jù)的外觀
web方面優(yōu)點(diǎn):
XML把數(shù)據(jù)從HTML分離
XML簡(jiǎn)化數(shù)據(jù)共享
XML簡(jiǎn)化數(shù)據(jù)傳輸
XML簡(jiǎn)化平臺(tái)的變更
XML使數(shù)據(jù)更有用
XML文檔組成:
1.XML聲明
<? xml 版本信息 [編碼信息] [文檔獨(dú)立性信息] ?>
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
2.XML文檔類(lèi)型聲明,兩種形式
聲明DTD在一個(gè)外部文件中,是以.dtd為擴(kuò)展名的文本文件
<!DOCTYPE 根元素 SYSTEM"文件名">
<!DOCTYPE poem SYSTEM "c.dtd">
直接在XML文檔中給出DTD,形式為
<!DOCTYPE 根元素 [元素聲明]>
<!DOCTYPE poem [
<!ELEMENT poem (title, author, content)>
<!ELEMENT title (#PCDATA)>
xxxx
3.元素
4.XML注釋
5.XML處理指令
<? target instruction?>

解析XML的三種方式
DOM:會(huì)將XML文件的所有內(nèi)容以文檔樹(shù)的方式存放在內(nèi)存中,允許用戶使用DOMAPI遍歷XML樹(shù),檢索所需的數(shù)據(jù)
基本流程:
1.利用DocumentBuilderFactory創(chuàng)建一個(gè)DocumentBuilderFactory實(shí)例
2.利用DocumentBuilderFactory創(chuàng)建DocumentBuilder
3.加載XML文檔(Document)
4.獲取文檔的根節(jié)點(diǎn)(Element)
5.獲取根節(jié)點(diǎn)中所有子節(jié)點(diǎn)的 列表(NodeList)
6.獲取子節(jié)點(diǎn)列表中的需要讀取的節(jié)點(diǎn)

SAX解析XML
基于事件驅(qū)動(dòng),邊加載邊解析

Paste_Image.png
Paste_Image.png

基本流程:
1.創(chuàng)建SAXParseFactory對(duì)象
2.根據(jù)SAXParserFactory.newSAXParser()方法返回一個(gè)SAXParser解析器
3.根據(jù)SAXParser解析器獲取事件源對(duì)象XMLReader
4.實(shí)例化一個(gè)DefaultHandler對(duì)象
5.連接事件源對(duì)象XMLReader到時(shí)間處理類(lèi)DefaultHandler中(setContentHandler)
6.調(diào)用XMLReader的parse方法從輸入源中獲取的XML數(shù)據(jù)
7.通過(guò)DefaultHandler返回需要的數(shù)據(jù)集合

PULL解析XML
方式與SAX解析一樣碌更,基于事件驅(qū)動(dòng)

Paste_Image.png
XmlPullParserFactory factory;
//實(shí)例化XmlPullParserFactory 
factory = XmlPullParserFactory.newInstance();
//設(shè)置支持名稱(chēng)空間
factory.setNamesapceAware(true);
//創(chuàng)建XmlPullParser類(lèi)
XmlPullParser xpp = factory.newPullParser();
//將xml文本讀入XmlPullParser解析器
xpp.setInput(new StringReader("<poem lang=\"chinese\"><title>靜夜思</title><author>李白</author><content>床前明月光....</content></poem>"));
//定義pull解析常用事件類(lèi)型
int eventType = xpp.getEventType();
//查看是否為XML文檔的邏輯末尾曾撤,輸入流的末尾
while(eventType != XmlPullParser.END_DOCUMENT) {
//查看是否為文檔開(kāi)始類(lèi)型
  if(eventType == XmlPullParser.START_DOCUMENT) {
          Log.d(TAG,"start document");
}else if (eventTpe == XmlPullParser.START_TAG)  {
//是否XML標(biāo)簽的開(kāi)始
     Log.d(TAG,"start tag" + xpp.getName());
} else if(eventType == XmlPullParser.END_TAG) {
    //是否XML標(biāo)簽的結(jié)束
Log.d(TAG,"End tag" + xpp.getName());
} else if(eventType == XmlPullParser.TEXT) {
      //是否XML的文本內(nèi)容
      Log.d(TAG,"Text " + xpp.getText());
}
//獲取下個(gè)解析事件
eventType = xpp.next();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末殃恒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子力奋,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件命咐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谐岁,警方通過(guò)查閱死者的電腦和手機(jī)醋奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)榛臼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人钝域,你說(shuō)我怎么就攤上這事讽坏。” “怎么了例证?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵路呜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我织咧,道長(zhǎng)胀葱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任笙蒙,我火速辦了婚禮抵屿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捅位。我一直安慰自己轧葛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布艇搀。 她就那樣靜靜地躺著尿扯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焰雕。 梳的紋絲不亂的頭發(fā)上衷笋,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音矩屁,去河邊找鬼辟宗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吝秕,可吹牛的內(nèi)容都是我干的泊脐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼郭膛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晨抡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起则剃,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤耘柱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后棍现,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體调煎,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年己肮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了士袄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悲关。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖娄柳,靈堂內(nèi)的尸體忽然破棺而出寓辱,到底是詐尸還是另有隱情,我是刑警寧澤赤拒,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布秫筏,位于F島的核電站,受9級(jí)特大地震影響挎挖,放射性物質(zhì)發(fā)生泄漏这敬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一蕉朵、第九天 我趴在偏房一處隱蔽的房頂上張望崔涂。 院中可真熱鬧,春花似錦始衅、人聲如沸冷蚂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帝雇。三九已至,卻和暖如春蛉拙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彻亲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工孕锄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人苞尝。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓畸肆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親宙址。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轴脐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. XML總結(jié) 1.1. XML簡(jiǎn)介 XML : 可擴(kuò)展的標(biāo)記語(yǔ)言。(和HTML非常類(lèi)似的) 可擴(kuò)展的抡砂。 自定義...
    Ethan_Walker閱讀 3,032評(píng)論 0 12
  • 1. XML簡(jiǎn)介 以下內(nèi)容來(lái)自于http://www.w3school.com.cn/xml 基本知識(shí) XML 和...
    WebSSO閱讀 1,916評(píng)論 1 7
  • Android解析器是基于樹(shù)形結(jié)構(gòu)的的節(jié)點(diǎn)或信息片段的集合大咱,允許開(kāi)發(fā)人員使用其API來(lái)遍歷XML樹(shù)、檢索所需數(shù)據(jù)注益。...
    博為峰51Code教研組閱讀 395評(píng)論 0 0
  • 今天天剛亮就被朋友叫去陪他去醫(yī)院看病碴巾,女兒和老公在家,等我回家的時(shí)候已經(jīng)2:00了 老公煮了湯圓和女兒兩個(gè)正在吃丑搔,...
    虹毅閱讀 201評(píng)論 0 4
  • (首先我得抱歉下厦瓢,我把12號(hào)的晨讀材料當(dāng)11號(hào)的寫(xiě)了提揍,所以現(xiàn)在我寫(xiě)的是11號(hào)的感悟) 話說(shuō)上周六我看了一期《是真的...
    撿到蜜罐的熊閱讀 188評(píng)論 0 2