使用XmlResourceParser轻松获取简单xml节点属性

来源:互联网 发布:免费取女装淘宝店名 编辑:程序博客网 时间:2024/06/05 07:03

             

         

         一.概述:作为一种可扩展标记语言, XML以其较强的互操作性,可扩展性和规范统一性等优点,得到广泛的应用,也是各种应用程序之间进行数据传输的最常用的工具。

        二.XML文件特性

          XML可扩展标记语言(Extensible Markup Language)的缩写,其中的标记(markup)是关键部分。

           您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息,结构清晰,看上去比较明了

           比如:

          

       由上面的xml结构可以看出,xml由英文单词命名的节点,子节点及其对应的元素构成,结构简单,

      可以把第一行当作它扎根的“土地”。XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点

      每个子节点又可以有自己的子节点。节点编号由0开始,

  三.获取xml文件节点属性

       今天要看的xml文件:

<PA>
    <Site No="0" Name="多" Port="5000" IP="192.168.2.1" DeviceAddress="1" adjustableBR="1" />
    <Site No="1" Name="A1" Port="5000" IP="192.168.2.1" DeviceAddress="2" adjustableBR="0" />
    <Site No="2" Name="C" Port="5000" IP="192.168.2.1" DeviceAddress="3" adjustableBR="1" />
    .....
    <Site No="22" Name="KK" Port="5000" IP="192.168.2.1" DeviceAddress="11" adjustableBR="1" />
    <Site No="23" Name="L" Port="5000" IP="192.168.2.1" DeviceAddress="12" adjustableBR="1" />
  </PA>


  简单了解了xml文件的结构后,我们可以很清楚的看明白这个xml文件。上面这个xml文件的根节点和子节点很清楚,接下来开始解析这个文件,取得我们想要的内容

  首先。我把这个文件存放在工程下面..res/xml文件夹下的r1.xml,

   拿到这个xml文件

          //1.得到Resources资源
          Resources r = getResources();  
          //通过Resources,获得XmlResourceParser实例  
          XmlResourceParser xrp = r.getXml(R.xml.r1);  //获取xml源文件


           //2.在获取节点属性前,加一个判断,判断文章的尅是和结束

            //如果没有到文件尾继续执行  

            while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {   
              //如果是开始标签  
                  if (xrp.getEventType() == XmlResourceParser.START_TAG) {  
                        //获取标签名称  
                         String name = xrp.getName();  
                         //判断标签名称是否等于Site  
                              if(name.equals("Site")){  
                                 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("Ip地址:"+xrp.getAttributeValue(3)+"\n");
                                  sb.append("模拟机地址:"+xrp.getAttributeValue(4)+"\n");
                                  sb.append("BR:"+xrp.getAttributeValue(5)+"\n\n");  
                                  list.add(sb);
                               }
                       } else if (xrp.getEventType() == XmlPullParser.END_TAG) {   
                     } else if (xrp.getEventType() == XmlPullParser.TEXT) {   
                   }   
                    //下一个标签  
                   xrp.next();   
               } 

     

         //3.运行结果:

                                   



 

        上面经过简单的几步就取到我们想要的节点属性值,

         在安卓的学习和开发过程中,不可避免会遇到过很多麻烦和难题,每次都是网上求救,众多前辈的博客给了我很大帮助和启发,    希望写下自己的笔记,和大家分享,如有纰漏之处,还请各位不吝赐教!

         

        


    

     

 

       

1 0