新聞中心
與***個 SAX 示例類似,以上代碼完全沒有特定于 Android 的地方。DOM 解析器將所有 XML 文檔讀取到內(nèi)存中,然后允許您使用 DOM API 遍歷 XML 樹、檢索所需的數(shù)據(jù)。這是非常直觀的代碼,并且,在某些方面比基于 SAX 的實現(xiàn)更加簡單。但是,DOM 通常更加占用內(nèi)存,因為一切內(nèi)容都會先讀取到內(nèi)存中。這對于運行 Android 的移動設(shè)備來說是一個問題,但是當(dāng) XML 文檔始終保持很小的大小時是可行的。這可能意味著,Android 的開發(fā)人員會認(rèn)為 SAX 解析在 Android 應(yīng)用程序上更加常見,因此為它提供了額外的實用工具。Android 還提供了另一種類型的 XML 解析器,它就是 pull 解析器。

成都創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,城西網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:城西等地區(qū)。城西做網(wǎng)站價格咨詢:028-86922220
XML pull 解析器
如前所述,Android 并未提供對 Java StAX API 的支持。但是,Android 確實附帶了一個 pull 解析器,其工作方式類似于 StAX。它允許您的應(yīng)用程序代碼從解析器中獲取事件,這與 SAX 解析器自動將事件推入處理程序相反。清單 10 顯示了提要解析接口的一個 pull 解析器實現(xiàn)。
清單 10. 基于 Pull 解析器的實現(xiàn)
java代碼:
- public class XmlPullFeedParser extends BaseFeedParser {
- public XmlPullFeedParser(String feedUrl) {
- super(feedUrl);
- }
- public List< Message > parse() {
- List< Message > messages = null;
- XmlPullParser parser = Xml.newPullParser();
- try {
- // auto-detect the encoding from the stream
- parser.setInput(this.getInputStream(), null);
- int eventType = parser.getEventType();
- Message currentMessage = null;
- boolean done = false;
- while (eventType != XmlPullParser.END_DOCUMENT && !done){
- String name = null;
- switch (eventType){
- case XmlPullParser.START_DOCUMENT:
- messages = new ArrayList< Message >();
- break;
- case XmlPullParser.START_TAG:
- name = parser.getName();
- if (name.equalsIgnoreCase(ITEM)){
- currentMessage = new Message();
- } else if (currentMessage != null){
- if (name.equalsIgnoreCase(LINK)){
- currentMessage.setLink(parser.nextText());
- } else if (name.equalsIgnoreCase(DESCRIPTION)){
- currentMessage.setDescription(parser.nextText());
- } else if (name.equalsIgnoreCase(PUB_DATE)){
- currentMessage.setDate(parser.nextText());
- } else if (name.equalsIgnoreCase(TITLE)){
- currentMessage.setTitle(parser.nextText());
- }
- }
- break;
文章標(biāo)題:AndroidXML讀寫(七)
文章來源:http://www.5511xx.com/article/dpoichh.html


咨詢
建站咨詢
