亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

XML及PullParser解析

2019-11-14 14:55:53
字體:
來源:轉載
供稿:網友

一.什么是xml

1、概念:extensive markup language(可擴展的標記語言)
  XML是一種通用的數據存儲和交換格式,與平臺無關,與編程語言無關,與操作系統無關。給數據集成和交互提供了極大的便利。將數據格式化成XML文件后,真正實現了據跨平臺的交互和共享。在不同語言中,xml的解析方式都一樣。
2、XML的解析:xml parse
  對xml文件進行閱讀和分析,提取出希望的數據和數據屬性。在android開發中,將xml解析后,把數據放進List<Map<String, Object>>集合中是我們的最終目的。
3、 XML的解析方式:
  DOM(document object model  :文檔對象模型):借助文檔樹模型對xml文檔進行分析
  SAX(simple API for xml  :xml的簡單api):利用事件流的形式解析XML
  PULL:利用事件流模型來解析XML
  備注:DOM和SAX解析的優劣分析:DOM是將文檔一次性讀入到內存,然后以文檔樹模進行分析節點信息。獲取到希望獲取的數據;而SAX是事件流的形式去分析xml文件。 DOM可以做到對文檔中部分節點的修改、刪除和新增,而SAX無法做到。
4、XML文件格式:
  每一個XML有且只有一個根節點;
  XML文件的數據中不可以 出現"< "或者" >";

二、DOM解析xml

1、核心類:
DocumentBuilderFactory
DocumentBuilder
Doucment
Element
NodeList
Node
 
2、核心代碼:
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   // 使用工廠來實例化一個構造Document的對象                        DocumentBuilder builder = factory.newDocumentBuilder(); // 利用DocumentBuilder來構造一個Document對象   Document document = builder.parse(filename);  // 獲取Document文檔的根節點對象   Element root = document.getDocumentElement();  // 通過根節點,獲取到根節點下面的所有二級子節點   NodeList nodeList = root.getChildNodes();     // 遍歷子節點,獲取內部的每一個節點   for (int i = 0; i < nodeList.getLength(); i++) {    Node node = nodeList.item(i);               // 獲取每個末端階段的文本值和節點名稱,將其存入到Map對象中               map.put(item.getNodeName(), item.getTextContent());     list.add(map);   }

 三、PULL解析xml

1、核心類:
XmlPullParserFactory
XmlPullParser
2、核心代碼:
 1 // 實例化一個xml pull解析的工廠 2 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 3 // 實例化一個xml pull解析對象 4 XmlPullParser pullParser = factory.newPullParser(); 5 // 將xml文件作為流傳入到inputstream 6 BufferedInputStream bis = new BufferedInputStream( 7 new FileInputStream("customers.xml")); 8   9 // xml解析對象接收輸入流對象10 pullParser.setInput(bis, "utf-8");11  12 int event = pullParser.getEventType();13 List<Map<String, Object>> list = null;14 Map<String, Object> map = null;15  16 while (event != XmlPullParser.END_DOCUMENT) {17 switch (event) {18 case XmlPullParser.START_DOCUMENT:19 list = new ArrayList<>();20 break;21 case XmlPullParser.START_TAG:22 if ("customer".equals(pullParser.getName())) {23 map = new HashMap<String, Object>();24 }25 if (pullParser.getName().equals("name")) {26 map.put("name", pullParser.nextText());27 }28 if (pullParser.getName().equals("tel")) {29 map.put("tel", pullParser.nextText());30 }31 // if (pullParser.getName().equals("email")) {32 // map.put("email", pullParser.nextText());33 // }34 break;35 case XmlPullParser.END_TAG:36 if (pullParser.getName().equals("customer")) {37 list.add(map);38 }39 break;40 }41 event = pullParser.next();42 }

 

3、pull解析方式和dom解析的區別:
pull解析中使用了switch case,所以可以獲取客戶希望獲取到的內容,而不用對整個xml文件進行解析。
 
4、pull parser的使用:(簡單易用)
只有一個關鍵方法key(),用于檢索下一個事件,只有五個事件類型。

四、DOM TREE結構中對節點的分類

1、文檔節點
2、元素節點
3、屬性節點
4、文本節點
5、注釋節點

五、PULL PARSER中的幾種event值:

1、START_DOCUMENT: 0
2、END_DOCUMENT: 1
3、START_TAG: 2
4、END_TAG: 3
5、TEXT: 4

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区在线播放免费观看| 亚洲图片欧洲图片av| 久久精品2019中文字幕| 97精品国产91久久久久久| 精品国产区一区二区三区在线观看| 美女扒开尿口让男人操亚洲视频网站| 亚洲综合色激情五月| 福利一区福利二区微拍刺激| 久久亚洲精品国产亚洲老地址| 美日韩在线视频| 久久国产精品视频| 日韩中文字幕视频在线观看| 国产成人一区二区三区小说| 亚洲国产精品资源| 欧美色欧美亚洲高清在线视频| 久久久亚洲精品视频| 另类色图亚洲色图| 亚洲福利视频在线| 国产精品九九久久久久久久| 久久国产精品网站| 91高清视频免费| 日韩视频在线观看免费| 欧美小视频在线| 日韩一区在线视频| 91精品美女在线| 欧美华人在线视频| 欧美午夜性色大片在线观看| 日韩美女在线观看| 日本免费在线精品| 亚洲最大福利视频| 日韩在线中文字幕| 亚洲精品久久久久久久久| 欧美视频免费在线| 久久人人爽人人爽人人片av高清| 91精品国产综合久久久久久蜜臀| 亚洲无线码在线一区观看| 久久亚洲精品小早川怜子66| 97在线免费观看视频| 亚洲第一视频在线观看| 影音先锋欧美精品| 不卡av在线播放| 亚洲精品网址在线观看| 在线观看欧美视频| 欧美体内谢she精2性欧美| 亚洲欧美国产日韩中文字幕| 中文字幕在线看视频国产欧美在线看完整| 日韩在线一区二区三区免费视频| 国产亚洲精品va在线观看| 日韩av片免费在线观看| 国产91色在线播放| 亚洲欧美日韩直播| 国产精品久久久久久久美男| 国产欧美中文字幕| 在线观看日韩www视频免费| 精品久久久久久久久久久| 日韩电影中文字幕在线| 色婷婷综合成人av| 日韩精品免费在线| 色妞色视频一区二区三区四区| 国产97在线视频| 成人精品视频久久久久| 成人妇女淫片aaaa视频| 九九热99久久久国产盗摄| 亚洲国产成人精品久久久国产成人一区| 日韩欧美国产高清91| 日韩精品视频在线免费观看| 91九色综合久久| 国产不卡av在线免费观看| 亚洲免费成人av电影| 欧美日韩性视频在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲自拍高清视频网站| 国产日韩精品综合网站| 欧美性色xo影院| 亚洲男人天堂手机在线| 精品国产精品三级精品av网址| 8090理伦午夜在线电影| 亚洲国产精久久久久久久| 亚洲v日韩v综合v精品v| 亚洲第一天堂无码专区| 欧美激情视频网| 国产精品极品美女在线观看免费| 国产精品亚洲视频在线观看| 日本精品久久中文字幕佐佐木| 综合激情国产一区| 日韩中文字幕在线| 久久精品国产一区| 欧美俄罗斯性视频| 国产999精品视频| 国产婷婷97碰碰久久人人蜜臀| 欧美猛少妇色xxxxx| 亚洲韩国日本中文字幕| 成人久久久久久| 久久久久久噜噜噜久久久精品| 欧美激情精品久久久久久变态| 亚洲欧美国产一本综合首页| 亚洲free性xxxx护士白浆| 久久国产精品偷| 久久视频免费观看| 亚洲美女精品成人在线视频| 69av成年福利视频| 国产福利视频一区| 欧美成人精品激情在线观看| 日韩电影免费观看在线观看| 亚洲老板91色精品久久| 亚洲欧美精品伊人久久| 欧美视频不卡中文| 久久资源免费视频| 国产欧美日韩丝袜精品一区| 国产欧美欧洲在线观看| 国产视频丨精品|在线观看| 亚洲影院高清在线| 日韩第一页在线| 97久久精品人搡人人玩| 俺去亚洲欧洲欧美日韩| 久久中文字幕一区| 国产一区二区三区视频免费| 欧美激情一区二区三级高清视频| 精品视频久久久| 亚洲视频一区二区三区| 成人免费看片视频| 精品成人国产在线观看男人呻吟| 亚洲成人性视频| 欧美福利视频在线| 欧美大胆在线视频| 亚洲天天在线日亚洲洲精| 亚洲国产精品久久久久秋霞不卡| 日本最新高清不卡中文字幕| 亚洲综合av影视| 日韩av成人在线观看| 日韩国产激情在线| 91久久精品美女| 久久久久久久亚洲精品| 亚洲国产另类久久精品| 国产成人欧美在线观看| 日韩欧美在线视频免费观看| 国产精品免费视频久久久| 国产成人+综合亚洲+天堂| 日本在线精品视频| 国产小视频91| 久久视频在线看| 欧美激情xxxx性bbbb| 亚洲白虎美女被爆操| 麻豆一区二区在线观看| 日韩av在线电影网| 热久久这里只有| 中文字幕免费精品一区高清| 久久久国产一区二区| www.精品av.com| 亚洲女同精品视频| 国产欧洲精品视频| 亚洲国产日韩精品在线| 精品五月天久久| 欧美富婆性猛交| 中文字幕欧美专区| 亚洲xxxx视频| 中文字幕久久亚洲| 亚洲精品久久久久久久久久久久久| 在线成人一区二区| 亚洲最新av在线网站| 亚洲第一福利视频| 国产99久久久欧美黑人| 国产成人午夜视频网址| 丝袜情趣国产精品|