您的位置:首页 > 移动开发 > Android开发

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

2015-06-21 11:51 585 查看
在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();//获取解析器的下一个事件

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: