1. 程式人生 > >android 獲取本地xml檔案

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>  

相關推薦

android 獲取本地xml檔案

獲取XML檔案的基本思路是,通過getResources().getXml()獲的XML原始檔案,得到XmlResourceParser物件,通過該物件來判斷是文件的開頭還是結尾,是某個標籤的開始還是結尾,並通過一些獲取屬性的方法來遍歷XML檔案,從而訪問XML檔案的內容,

[總結]Android 獲取本地視訊檔案路徑並播放的幾種方式

Android 獲取本地視訊檔案路徑的方式 在android 專案開發過程中,遇到獲取本地視訊檔案的問題,記錄一下獲取本地檔案的幾種方式。 首先說下sdcard在手機中的掛載位置。 android手

Android獲取本地檔案的真實路徑,content型別轉為file型別

來源網路。記錄知識點以防備用..... 相容不同的機型獲取到的檔案路徑型別,以防異常情況發生。 public static String getPath(Context context, Uri uri) { if ("content".equalsIgnoreCase(uri.ge

Android本地選擇檔案並判斷檔案型別並獲取選到檔案大小的方法

最近有一個android選擇本地檔案的並判斷檔案型別的需求 首先要選擇檔案通過點選事件進入到檔案列表 這裡是瀏覽所有的檔案。用到的是startActivityForResult Intent intent = new Intent(Intent.ACTION_GET_CO

android studio中存放json檔案獲取assets檔案下下檔案獲取本地json檔案並解析

轉自http://blog.csdn.net/yanxiaosa/article/details/70859927 以前看過這些知識,今天用到的時候,發現自己忘記了,都不知道assets資料夾在哪個目錄下。百度了一下,assets目錄和java目錄是同一個級別的。  我

Android 反編譯XML檔案

我們在進行安卓逆向分析的時候,xml檔案是無法直接開啟的,通過記事本開啟會是亂碼。 我們可以通過之前的AXMLPrinter2.jar來進行還原。 首先下載FXML.zip裡邊的FXML.jar http://download.csdn.net/download/qq_2864102

Android 讀取本地txt檔案和寫入txt檔案本地

import android.util.Log; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java

谷歌通過ajax獲取本地JSON檔案,為什麼會提示跨域?(轉載)

  https://blog.csdn.net/jiaoshuaiai/article/details/78417683 在本地寫了一段JSON程式碼,然後用ajax讀取後,在瀏覽器開啟,發現谷歌提示涉及到跨域問題, 但是跨域是由於協議,域名,埠中有一個不同,才會跨域,我在本地訪問自己的檔

jquery通過ajax方法獲取本地json檔案不執行success回撥

//a.json { list:{ createtime:"2018/11/05 16:45:22", status: 0, name: "aa", price: "188.00", num: "2", img: "1.jpg" } }

谷歌通過ajax獲取本地JSON檔案,為什麼會提示跨域?

在本地寫了一段JSON程式碼,然後用ajax讀取後,在瀏覽器開啟,發現谷歌提示涉及到跨域問題, 但是跨域是由於協議,域名,埠中有一個不同,才會跨域,我在本地訪問自己的檔案,怎麼和跨域扯上關係了?? 下

Android獲取網路視訊檔案縮圖

一,通過Android系統自帶的類獲取: 1.  public staticBitmapcreateVideoThumbnail(String filePath,int kind){     Bitmap bitmap = null; &n

Android 載入本地圖片(檔案管理器中的圖片牆)

Android 載入本地圖片(檔案管理器中的圖片牆) --關於圖片牆的一些感悟與疑問,希望大家共同探討。 (By伊葉也) 圖片顯示及監聽 1、圖片顯示:基本上就5種顯示形式(如果同時嵌入5種形式,採用

android通過style.xml檔案定義相同控制元件的通用屬性

  <style name="DetailsLabel"> <item name="android:shadowColor">#FF000000</item> <item name="android:shadowRadius">

反編譯apk檔案獲取strings.xml檔案的內容——使用apktool反編譯

現在通過AXMLPrinter2.jar獲取AndroidManifest.xml內容時,發現有些值是放在strings.xml中,而strings.xml檔案是被打包在resources.arsc檔案裡面,在網上找了下,說是用arsceditor進行編輯,但是我下載了個arsceditor時(下載地址:ht

android獲取string.xml的值

在android開發過程中,編寫java程式碼中的常量過一般情況下,我們是定義在string.xml這個檔案中。這樣修改起來也很方便,而且做國際化也很簡單。 這個string.xml的值會被R檔案對映,所以可以看到R檔案全是定義為int型別,就像是一個地址指引一樣。 獲取s

android 獲取本地圖片路徑失敗,cursor.getString(column_index);返回null

今天有個需求就是獲取手機本地圖片,然後二維碼解析結果,跳轉網頁! 之前我獲取圖片的程式碼是這麼寫的 /* * 獲取帶二維碼的相片進行掃描 */public void pickPictureFromA

JS中獲取本地json檔案構建zTree

標準的json物件格式為{"key":value,"key2":value2} 有雙引號$.getJSON("json/layer.json?"+timestamp, function (data){}能夠獲取本地json檔案資料$.ajax也能夠獲取本地json檔案資料示例

Android 獲取本地儲存路徑的各種方法詳解

Android 中獲取本地儲存路徑,有四個方法, getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()。 接下來介紹下每個方法的特點以及路徑地址 getCacheDir(

【String.xml】修改Android中strings.xml檔案, 動態改變資料

有些朋友可能會動態的修改Android中strings.xml檔案中的值,在這裡給大家推薦一種簡單的方法。strings.xml中節點是支援佔位符的,如下所示: <string name="data">整數型:%1$d,浮點型:%2$.2f,字串:%3$s&

Android中attrs.xml檔案的使用詳解

1. attrs.xml 的作用 控制元件有很多屬性,如 android:id、android:layout_width、android:layout_height等,但是這些屬性都是系統自帶的屬性。使用attrs.xml檔案,可以自己定義屬性,下面我會寫些小