• getResources().getXml()获取xml


    获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内容,下面是一个访问XML文件内容的例子,并将内容更显示在一个TextView上

    ReadXMLTest.java

    Java代码 复制代码 收藏代码
    1. /*  
    2.  * @author hualang  
    3.  */  
    4. package org.hualang.readxml;   
    5.   
    6. import java.io.IOException;   
    7. import org.xmlpull.v1.XmlPullParser;   
    8. import org.xmlpull.v1.XmlPullParserException;   
    9.   
    10. import android.app.Activity;   
    11. import android.content.res.Resources;   
    12. import android.content.res.XmlResourceParser;   
    13. import android.os.Bundle;   
    14. import android.view.View;   
    15. import android.view.View.OnClickListener;   
    16. import android.widget.Button;   
    17. import android.widget.TextView;   
    18. import org.hualang.readxml.R;   
    19.   
    20. public class ReadXMLTest extends Activity {   
    21.     private TextView myTextView;   
    22.     private Button myButton;   
    23.     @Override  
    24.     public void onCreate(Bundle savedInstanceState) {   
    25.         super.onCreate(savedInstanceState);   
    26.        setContentView(R.layout.main);   
    27.           
    28.        myTextView = (TextView)findViewById(R.id.text);   
    29.        myButton = (Button)findViewById(R.id.button);   
    30.        //设置按钮监听器   
    31.        myButton.setOnClickListener(new OnClickListener() {   
    32.         @Override  
    33.         public void onClick(View v) {   
    34.             //设置定时器   
    35.                int counter = 0;   
    36.                //实例化StringBuilder   
    37.                StringBuilder sb = new StringBuilder("");   
    38.                //得到Resources资源   
    39.                Resources r = getResources();   
    40.                //通过Resources,获得XmlResourceParser实例   
    41.                XmlResourceParser xrp = r.getXml(R.xml.test);   
    42.                try {   
    43.                    //如果没有到文件尾继续执行   
    44.                 while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {    
    45.                     //如果是开始标签   
    46.                          if (xrp.getEventType() == XmlResourceParser.START_TAG) {   
    47.                              //获取标签名称   
    48.                               String name = xrp.getName();   
    49.                               //判断标签名称是否等于friend   
    50.                               if(name.equals("friend")){   
    51.                                   counter++;   
    52.                                   //获得标签属性追加到StringBuilder中   
    53.                                   sb.append("第"+counter+"个朋友的信息:"+" ");   
    54.                                   sb.append(xrp.getAttributeValue(0)+" ");   
    55.                                   sb.append(xrp.getAttributeValue(1)+" ");   
    56.                                   sb.append(xrp.getAttributeValue(2)+" ");   
    57.                                   sb.append(xrp.getAttributeValue(3)+" ");   
    58.                               }   
    59.                          } else if (xrp.getEventType() == XmlPullParser.END_TAG) {    
    60.                          } else if (xrp.getEventType() == XmlPullParser.TEXT) {    
    61.                          }    
    62.                          //下一个标签   
    63.                          xrp.next();    
    64.                     }   
    65.                 myTextView.setText(sb.toString());   
    66.             } catch (XmlPullParserException e) {   
    67.                 e.printStackTrace();   
    68.             } catch (IOException e) {   
    69.                 e.printStackTrace();   
    70.             }   
    71.         }   
    72.     });   
    73.     }   
    74. }  
    [java] view plaincopy
     
    1. /* 
    2.  * @author hualang 
    3.  */  
    4. package org.hualang.readxml;  
    5.   
    6. import java.io.IOException;  
    7. import org.xmlpull.v1.XmlPullParser;  
    8. import org.xmlpull.v1.XmlPullParserException;  
    9.   
    10. import android.app.Activity;  
    11. import android.content.res.Resources;  
    12. import android.content.res.XmlResourceParser;  
    13. import android.os.Bundle;  
    14. import android.view.View;  
    15. import android.view.View.OnClickListener;  
    16. import android.widget.Button;  
    17. import android.widget.TextView;  
    18. import org.hualang.readxml.R;  
    19.   
    20. public class ReadXMLTest extends Activity {  
    21.     private TextView myTextView;  
    22.     private Button myButton;  
    23.     @Override  
    24.     public void onCreate(Bundle savedInstanceState) {  
    25.         super.onCreate(savedInstanceState);  
    26.        setContentView(R.layout.main);  
    27.          
    28.        myTextView = (TextView)findViewById(R.id.text);  
    29.        myButton = (Button)findViewById(R.id.button);  
    30.        //设置按钮监听器  
    31.        myButton.setOnClickListener(new OnClickListener() {  
    32.         @Override  
    33.         public void onClick(View v) {  
    34.             //设置定时器  
    35.                int counter = 0;  
    36.                //实例化StringBuilder  
    37.                StringBuilder sb = new StringBuilder("");  
    38.                //得到Resources资源  
    39.                Resources r = getResources();  
    40.                //通过Resources,获得XmlResourceParser实例  
    41.                XmlResourceParser xrp = r.getXml(R.xml.test);  
    42.                try {  
    43.                    //如果没有到文件尾继续执行  
    44.                 while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {   
    45.                     //如果是开始标签  
    46.                          if (xrp.getEventType() == XmlResourceParser.START_TAG) {  
    47.                              //获取标签名称  
    48.                               String name = xrp.getName();  
    49.                               //判断标签名称是否等于friend  
    50.                               if(name.equals("friend")){  
    51.                                   counter++;  
    52.                                   //获得标签属性追加到StringBuilder中  
    53.                                   sb.append("第"+counter+"个朋友的信息:"+" ");  
    54.                                   sb.append(xrp.getAttributeValue(0)+" ");  
    55.                                   sb.append(xrp.getAttributeValue(1)+" ");  
    56.                                   sb.append(xrp.getAttributeValue(2)+" ");  
    57.                                   sb.append(xrp.getAttributeValue(3)+" ");  
    58.                               }  
    59.                          } else if (xrp.getEventType() == XmlPullParser.END_TAG) {   
    60.                          } else if (xrp.getEventType() == XmlPullParser.TEXT) {   
    61.                          }   
    62.                          //下一个标签  
    63.                          xrp.next();   
    64.                     }  
    65.                 myTextView.setText(sb.toString());  
    66.             } catch (XmlPullParserException e) {  
    67.                 e.printStackTrace();  
    68.             } catch (IOException e) {  
    69.                 e.printStackTrace();  
    70.             }  
    71.         }  
    72.     });  
    73.     }  
    74. }  

    main.xml

    Java代码 复制代码 收藏代码
    1. <?xml version="1.0" encoding="utf-8"?>   
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     >   
    7. <Button   
    8.     android:id="@+id/button"  
    9.     android:layout_width="fill_parent"  
    10.     android:layout_height="wrap_content"  
    11.     android:text="读取XML文件内容"  
    12. />   
    13. <TextView     
    14.     android:id="@+id/text"  
    15.     android:layout_width="wrap_content"  
    16.     android:layout_height="wrap_content"    
    17.     android:text=""  
    18.     />   
    19. </LinearLayout>  
    [java] view plaincopy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     >  
    7. <Button  
    8.     android:id="@+id/button"  
    9.     android:layout_width="fill_parent"  
    10.     android:layout_height="wrap_content"  
    11.     android:text="读取XML文件内容"  
    12. />  
    13. <TextView    
    14.     android:id="@+id/text"  
    15.     android:layout_width="wrap_content"  
    16.     android:layout_height="wrap_content"   
    17.     android:text=""  
    18.     />  
    19. </LinearLayout>  

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

    Java代码 复制代码 收藏代码
    1. <?xml version="1.0" encoding="utf-8"?>   
    2. <resources>   
    3.     <friend name="hualang" age="22" gender="male" email="hualang@yahoo.com"/>   
    4.     <friend name="nimo" age="21" gender="female" email="1234567@qq.com"/>   
    5. </resources>  
    [java] view plaincopy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <resources>  
    3.     <friend name="hualang" age="22" gender="male" email="hualang@yahoo.com"/>  
    4.     <friend name="nimo" age="21" gender="female" email="1234567@qq.com"/>  
    5. </resources>  

    运行结果

    注意:如果没有加入import org.hualang.readxml.R;这句话,点击按钮后没有反应,原因不知道


    加入import org.hualang.readxml.R;后,运行结果如下
     

    http://blog.csdn.net/freestyleboy21/article/details/7008228

  • 相关阅读:
    win10 uwp 装机必备应用 含源代码
    win10 uwp 装机必备应用 含源代码
    win10 uwp clone
    win10 uwp clone
    win10 输入法禁用IME
    win10 输入法禁用IME
    win10 输入法禁用IME
    查看SQL运行时间
    [学习笔记]三元环
    数据库范式
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3854358.html
Copyright © 2020-2023  润新知