andorid以pull的方式來讀取XML檔案

2021-06-02 22:06:56 字數 3998 閱讀 2728

//andorid以pull的方式來讀取xml檔案

private  boolean par***ml3(inputstream inputstream)

if (inputstream == null)

return false;

// 獲得xmlpullparser解析器

xmlpullparser xmlparser = xml.newpullparser();

try// 設定編碼方式

xmlparser.setinput(inputstream, "utf-8");

// 獲得解析到的事件類別,這裡有開始文件,結束文件,開始標籤,結束標籤,文字等等事件。

int evttype = xmlparser.geteventtype();

// 一直迴圈,直到文件結束(從第乙個標籤開始到最後乙個標籤結束)

while (evttype != xmlpullparser.end_document)

switch (evttype)

//捕捉開始標籤(任何乙個開始的標籤)

case xmlpullparser.start_tag:

string tag = xmlparser.getname();

// 如果是position標籤開始,則讀取此標籤裡面的屬性值

if (tag.equalsignorecase("position"))

log.i(tag, "position標籤開始");

string alias = xmlparser.getattributevalue(null,

"alias");

string changetime = xmlparser.getattributevalue(null,

"changetime");

string changetype = xmlparser.getattributevalue(null,

"changetype");

string height = xmlparser.getattributevalue(null,

"height");

string pid = xmlparser.getattributevalue(null, "pid");

string width = xmlparser.getattributevalue(null,

"width");

string count = xmlparser.getattributevalue(null,

"count");

log.i(tag, "alias:" + alias);

log.i(tag, "changetime:" + changetime);

log.i(tag, "changetype:" + changetype);

log.i(tag, "height:" + height);

log.i(tag, "pid:" + pid);

log.i(tag, "width:" + width);

log.i(tag, "count:" + count);

} else if (tag.equalsignorecase("advertise"))

log.i(tag, "advertise標籤開始,不用讀取任何值");

else if (tag.equalsignorecase("adid"))

log.i(tag, "adid標籤開始");

string adid = xmlparser.nexttext().trim();

log.i(tag, "adid:" + adid);

else if (tag.equalsignorecase("imgurl"))

log.i(tag, "imgurl標籤開始");

string imgurl = xmlparser.nexttext().trim();

log.i(tag, "imgurl:" + imgurl);

else if (tag.equalsignorecase("opentype"))

log.i(tag, "opentype標籤開始");

string imgurl = xmlparser.nexttext().trim();

log.i(tag, "opentype:" + imgurl);

else if (tag.equalsignorecase("url"))

log.i(tag, "url標籤開始");

string url = xmlparser.nexttext().trim();

log.i(tag, "url:" + url);

else if (tag.equalsignorecase("adtype"))

log.i(tag, "adtype標籤開始");

string adtype = xmlparser.nexttext().trim();

log.i(tag, "adtype:" + adtype);

break;

//捕捉結束標籤(任何乙個結束的標籤)

case xmlpullparser.end_tag:

if (xmlparser.getname().equalsignorecase("advertise"))

log.i(tag, "advertise標籤結束");

} else if (xmlparser.getname().equalsignorecase("position"))

log.i(tag, "position標籤結束");

break;

default:

break;

// 如果xml沒有結束,則導航到下乙個節點

evttype = xmlparser.next();

return true;

} catch (xmlpullparserexception e)

// todo auto-generated catch block

e.printstacktrace();

} catch (ioexception e1)

// todo auto-generated catch block

e1.printstacktrace();

return false;

*****************************需要解釋的xml檔案如下***********************************************

<?xml version="1.0" encoding="utf-8" ?>

alias="本週最佳應用軟體"

changetime="5"

changetype="0"

height="90"

pid="1"

width="220" 

count="1">

/upload/store/topic/ad1.png

alias="英語學習應用軟體"

changetime="5"

changetype="0"

height="90"

pid="2"

width="220" 

count="1">

/upload/store/topic/ad2.png

alias="憤怒的小鳥"

changetime="5"

changetype="0"

height="90"

pid="3"

width="220" 

count="1">

/upload/store/topic/ad3.png

/niao.txt

alias="本週最佳遊戲"

changetime="5"

changetype="0"

height="90"

pid="4"

width="220" 

count="1">

/upload/store/topic/ad4.png

Xml的PULL解析方式

public class mainactivity extends activity break 讀取到文字 case xmlpullparser.text if name equals tagname else if age equals tagname break 讀取到結束標籤 case xm...

ANDORID 支援的裝置

很少人關注這個問題,我不多說,你沒事看下,會有些特殊變化 下表列出了 google play 支援的裝置。此列表是按製造商名稱的首字母排序的。您也可以在此頁面中查詢自己的裝置 pc ctrl f,蘋果機 command f 請注意 列出的部分裝置採用了官方型號。要檢視裝置型號,請在您的裝置上依次轉到...

以CLI方式執行

除了可以在瀏覽器中通過url呼叫乙個 控制器 外,也可以通過命令列介面 cli 呼叫。命令列介面是一種基於文字的和計算機互動的方式。如果想檢視更詳細說明,請看wikipedia article.雖然不是必須的,但在某些情況下我們會用到命令列 首先建立乙個簡單的控制器。使用你的文字編輯器,建立乙個叫做...