Android中使用Xml内置解析器pull来解析Xml原始资源

在Android中解析Xml资源文件很常见。Android为我们内置了一个叫做Pull的Xml资源解析器,它可以帮助我们轻松解析Xml资源文件,下面我就跟大家来分享下Pull解析器对Xml文件的解析步骤。

1.因为在Android项目的res/目录下系统没有为我们自动创建xml文件夹,所以需要我们手动创建一个名称为 “xml”的文件夹。

2.在创建好的xml文件夹下(/res/xml/)创建一个标准的xml文件即可。

3.在Java程序代码中(MainActivity),我们可以使用Activity的资源管理类--Resources,通过它的getXml(int id)来获取xml文件。

4.getXml(int id)方法会为我们返回一个XmlResourceParser的对象。使用该对象我们就可以对xml文件进行解析了。

5.一般情况下,我们会使用XmlResourcesParser对象的getEventType来判断执行事件,通过它来循环执行Xml文件直至解析结束。

6.在Xml解析过程中,可以使用XmlResourcesParser对象的getAttributeValue(String namespace,String attributeName)来获取属性值。通过nextText()来获取文本节点值。

7.在解析过程中,当解析完一个标签后,调用XmlResourcesParser的next()方法来获取下一个事件,继续执行。

下面是部分代码,仅供参考:

1.xml资源文件

<?xml version="1.0" encoding="utf-8"?>
<students>
    <student id="1" age="20">小红</student>
    <student id="2" age="21">小王</student>
</students>

2.Xml解析过程代码

StringBuilder builder = new StringBuilder();
    //1.获取XML资源
    XmlResourceParser parser =  MainActivity.this.getResources().getXml(R.xml.student);
      //2.判断是否解析完
    while(parser.getEventType() != XmlResourceParser.END_DOCUMENT){
     //3.判断是否为开始标签
     if(parser.getEventType() == XmlResourceParser.START_TAG){
      //4.获取标签签名
      String tag = parser.getName();
      if(tag.equals("book")){
       //获取属性值
       String id = parser.getAttributeValue(null,"id");
       builder.append("学生编号:").append(id);
       String age = parser.getAttributeValue(null, "age");
       builder.append("学生年龄:").append(age);
       //获取文本节点值
       String name = parser.nextText();
       builder.append("学生姓名:").append(name);
      }
     }
     parser.next();//获取解析器的下一个事件
    }

 

你可能感兴趣的:(android,xml)