加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XmlResourceParser类是怎么样解析XML文件的

发布时间:2020-12-16 05:04:18 所属栏目:百科 来源:网络整理
导读:android开发过程会经常使用XML文件,下面提供小实例,看看XmlResourceParser类是怎么样解析XML文件的。 XML文件名称为test.xml。内容如下: Xml代码 ? xml version = "1.0" encoding = "utf-8" ? resources customer name = "luopeng" age = "21" gender = "

android开发过程会经常使用XML文件,下面提供小实例,看看XmlResourceParser类是怎么样解析XML文件的。

XML文件名称为test.xml。内容如下:

Xml代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. customername="luopeng"age="21"gender="1"emial="dylankeepmoving@163.com"/>
  4. customername="dylan"age="22"gender="2"emial="710097663@qq.com"customername="android"age="6"gender="2"emial="android@gmail.com"</>

布局文件main.xml内容如下:

LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical"
  • TextView
  • android:id="@+id/textview01"
  • android:layout_height="wrap_content"
  • android:text="@string/hello"Button
  • android:id="@+id/btn01"
  • android:layout_width="wrap_content"
  • android:text="@string/btn01"
  • EditText
  • android:id="@+id/edittext01"
  • android:text="@string/eidttext01"
  • LinearLayout>
  • 如下则是具体解析XML文件的类TestXmlResourceParserActivity.java:

    Java代码
      packagecom.dylan.xmlresourceparser;
    1. importjava.io.IOException;
    2. importorg.xmlpull.v1.XmlPullParserException;
    3. importandroid.app.Activity;
    4. importandroid.content.res.Resources;
    5. importandroid.content.res.XmlResourceParser;
    6. importandroid.os.Bundle;
    7. importandroid.view.View;
    8. importandroid.view.View.OnClickListener;
    9. importandroid.widget.Button;
    10. importandroid.widget.EditText;
    11. /*
    12. *此类的作用是点击按钮后在EditView上显示资源文件(一个XML)中的内容
    13. *此例中会使用到XMLResourceParser
    14. */
    15. publicclassTestXmlResourceParserActivityextendsActivity{
    16. /**Calledwhentheactivityisfirstcreated.*/
    17. privateEditTextet;
    18. privateButtonmyButton;
    19. @Override
    20. voidonCreate(BundlesavedInstanceState){
    21. super.onCreate(savedInstanceState);
    22. setContentView(R.layout.main);
    23. //变量在内部类中使用的前提是此变量必须是final修饰的
    24. myButton=(Button)this.findViewById(R.id.btn01);
    25. et=(EditText)this.findViewById(R.id.edittext01);
    26. myButton.setOnClickListener(newOnClickListener(){
    27. StringBuildersb=newStringBuilder("");
    28. Resourcesres=getResources();
    29. XmlResourceParserxrp=res.getXml(R.xml.test);
    30. voidonClick(Viewv){
    31. intcounter=0;
    32. try{
    33. //判断是否到了文件的结尾
    34. while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){
    35. //文件的内容的起始标签开始,注意这里的起始标签是test.xml文件里面<resources>标签下面的第一个标签
    36. if(xrp.getEventType()==XmlResourceParser.START_TAG){
    37. Stringtagname=xrp.getName();
    38. if(tagname.endsWith("customer")){
    39. counter++;
    40. sb.append("这是第"+counter+"客户"+"n");
    41. sb.append("姓名:"+xrp.getAttributeValue(0)+"n");
    42. sb.append("年龄:"+xrp.getAttributeValue(1)+"n");
    43. sb.append("性别:"+xrp.getAttributeValue(2)+"n");
    44. sb.append("邮箱:"+xrp.getAttributeValue(3)+"nn");
    45. }
    46. //下面的两个elseif什么作用呢?
    47. elseif(xrp.getEventType()==XmlResourceParser.END_TAG){
    48. }if(xrp.getEventType()==XmlResourceParser.TEXT){
    49. xrp.next();
    50. //程序细节注意的地方,StringBuilder要条用toString()方法,不要粗心忘记了
    51. et.setText(sb.toString());
    52. catch(XmlPullParserExceptione){
    53. catch(IOExceptione){
    54. e.printStackTrace();
    55. });
    56. }

    运行结果如下图:


    转载自:http://www.iteye.com/topic/1122056

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读