android 獲取本地xml文件

獲取XML文件的基本思路是,通過getResources().getXml()獲的XML原始文件,得到XmlResourceParser對象,通過該對象來判斷是文檔的開頭還是結尾,是某個標籤的開始還是結尾,並通過一些獲取屬性的方法來遍歷XML文件,從而訪問XML文件的內容,下面是一個訪問XML文件內容的例子,並將內容更顯示在一個TextView上

ReadXMLTest.Java

import java.io.IOException;   
import org.xmlpull.v1.XmlPullParser;   
import org.xmlpull.v1.XmlPullParserException;   
  
import android.app.Activity;   
import android.content.res.Resources;   
import android.content.res.XmlResourceParser;   
import android.os.Bundle;   
import android.view.View;   
import android.view.View.OnClickListener;   
import android.widget.Button;   
import android.widget.TextView;   
import org.hualang.readxml.R;   
  
public class ReadXMLTest extends Activity {   
    private TextView myTextView;   
    private Button myButton;   
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
       setContentView(R.layout.main);   
          
       myTextView = (TextView)findViewById(R.id.text);   
       myButton = (Button)findViewById(R.id.button);   
       //設置按鈕監聽器   
       myButton.setOnClickListener(new OnClickListener() {   
        @Override  
        public void onClick(View v) {   
            //設置計數   
               int counter = 0;   
               //實例化StringBuilder   
               StringBuilder sb = new StringBuilder("");   
               //得到Resources資源   
               Resources r = getResources();   
               //通過Resources,獲得XmlResourceParser實例   
               XmlResourceParser xrp = r.getXml(R.xml.test);   
               try {   
                   //如果沒有到文件尾繼續執行   
                while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {    
                    //如果是開始標籤   
                         if (xrp.getEventType() == XmlResourceParser.START_TAG) {   
                             //獲取標籤名稱   
                              String name = xrp.getName();   
                              //判斷標籤名稱是否等於friend   
                              if(name.equals("friend")){   
                                  counter++;   
                                  //獲得標籤屬性追加到StringBuilder中   
                                  sb.append("第"+counter+"個朋友的信息:"+"\n");   
                                  sb.append(xrp.getAttributeValue(0)+"\n");   
                                  sb.append(xrp.getAttributeValue(1)+"\n");   
                                  sb.append(xrp.getAttributeValue(2)+"\n");   
                                  sb.append(xrp.getAttributeValue(3)+"\n\n");   
                              }   
                         } else if (xrp.getEventType() == XmlPullParser.END_TAG) {    
                         } else if (xrp.getEventType() == XmlPullParser.TEXT) {    
                         }    
                         //下一個標籤   
                         xrp.next();    
                    }   
                myTextView.setText(sb.toString());   
            } catch (XmlPullParserException e) {   
                e.printStackTrace();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
    });   
    }   
}  


main.xml

    <?xml version="1.0" encoding="utf-8"?>   
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        >   
    <Button   
        android:id="@+id/button"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="讀取XML文件內容"  
    />   
    <TextView     
        android:id="@+id/text"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"    
        android:text=""  
        />   
    </LinearLayout>  


res/xml目錄下的test.xml文件

    <?xml version="1.0" encoding="utf-8"?>   
    <resources>   
        <friend name="xiaoming" age="22" gender="male" email="[email protected]"/>   
        <friend name="xiaowang" age="21" gender="female" email="[email protected]"/>   
    </resources>  


 

發佈了63 篇原創文章 · 獲贊 8 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章