日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 之解析XML文件

發布時間:2024/3/13 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 之解析XML文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.布局頁面 activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="解析XML文件"android:id="@+id/btn"/><TextViewandroid:layout_width="100dp"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:id="@+id/show"/></LinearLayout>

2.在res的目錄下創建一個xml文件夾,并在里面放入一個xml文件

<worid><name value="劍士"/><name value="槍手"/><name value="魔法師"/><name value="格斗家"/><name value="槍劍士"/> </worid>

3 . MainActivity.java 主程序

package topteam.com.xmlpull;import android.content.res.Resources; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView;import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException;import java.io.IOException; import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {Button btn;TextView show;Handler handler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = findViewById(R.id.btn);show = findViewById(R.id.show);handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case 1:List<String> list = (List<String>) msg.obj;for(String va:list){show.append(va+"\n");}break;}}};/*** 點擊按鈕執行解析操作*/btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//由于有些被解析的XML文檔比較大,比較耗費時間,所以創建一個線程去執行耗時的操作new Thread(){@Overridepublic void run() {try {List<String> vaList = getParserXml(getResources(), R.xml.user);Message message = new Message();message.what=1;message.obj = vaList;handler.sendMessage(message);} catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();}}}.start();}});}/*** 用Pull解析Xml文本的方法** @param res 獲取文檔* @param id 要解析的文檔* @return* @throws IOException* @throws XmlPullParserException*/private List<String> getParserXml(Resources res, int id) throws IOException, XmlPullParserException {List<String> valueList = null;String tagName;//獲得XmlPullParset的解析器XmlPullParser parser = res.getXml(id);//Pull解析的本質是SAX解析int type = parser.getEventType(); //獲得文本的類型while (type != XmlPullParser.END_DOCUMENT) {switch (type) {case XmlPullParser.START_DOCUMENT: //文檔的開始Log.i("測試", "文檔的開始");valueList = new ArrayList<>();break;case XmlPullParser.END_DOCUMENT: //文檔的結束Log.i("測試", "文檔的結束");break;case XmlPullParser.START_TAG: //標記 node結點的開始tagName = parser.getName(); //得到標記的名字//得到屬性的值if (tagName.equals("name")) {String value = parser.getAttributeValue(0);valueList.add(value);Log.i("測試", "標記的開始" + value);}break;case XmlPullParser.END_TAG: //標記 node結點的結束tagName = parser.getName();Log.i("測試", "標記的結束" + tagName);break;}type = parser.next();}return valueList;}}

總結

以上是生活随笔為你收集整理的Android 之解析XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。