使用自定义的XML资源,这当然也必须是Android的一个功能,Java开发者可以使用DOM,SAX等多种方式,Android内建了Pull来解析XML
那么我个人觉得在Android中还是使用它的内建解析方法比较好,使用其它方式还要下载它们的Jar包,还是挺麻烦的.

同样的,和动画资源一样,XML资源也没有默认创建,需要自己手动创建res/xml

下面先定义一个xml文件,然后再解析它

res/xml中创建books.xml

<?xml version="1.0" encoding="utf-8"?><books>    <book price="99.0" 出版日期="2008年">Java</book>    <book price="89.0" 出版日期="2009年">Jave EE</book>    <book price="69.0" 出版日期="2009年">Ajax</book></books>

下面在主界面中放一个按钮,点击时解析XML,然后显示在下面的文本框里面

package WangLi.Resouce.XmlResTest;import java.io.IOException;import org.xmlpull.v1.XmlPullParserException;import android.app.Activity;import android.content.res.XmlResourceParser;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class XmlResTest extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button bn = (Button)findViewById(R.id.bn);        bn.setOnClickListener(new OnClickListener(){        public void onClick(View arg0)        {        //根据XML资源的ID获取解析该资源的解析器        //XmlResourceParser是XmlPullParser的子类        XmlResourceParser xrp = getResources().getXml(R.xml.books);        try        {        StringBuilder sb = new StringBuilder("");        //还没有到XML文档的结尾处        while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT)        {        //如果遇到了开始标签        if(xrp.getEventType()==XmlResourceParser.START_TAG)        {        //获取该标签的标签名        String tagName = xrp.getName();        if(tagName.equals("book"))        {        //根据属性名获取属性值        String bookName = xrp.getAttributeValue(null,"price");        sb.append("价格:");        sb.append(bookName);        //根据属性索引来获取属性值        String bookPrice = xrp.getAttributeName(1);        sb.append("出版日期:");        sb.append(bookPrice);        sb.append("书名:");        //获取文本节点的值        sb.append(xrp.nextText());        }        sb.append("\n");        }        //获取解析器的下一个事件        xrp.next();        }        EditText show = (EditText)findViewById(R.id.show);        show.setText(sb.toString());        }        catch(XmlPullParserException e)        {        e.printStackTrace();        }        catch(IOException e)        {        e.printStackTrace();        }        }        });    }}

效果如下,当点击按钮时,文本框出现解析的XML文件内容


更多相关文章

  1. 范例解析:学习Android的IPC主板模式
  2. 是时候让 Android(安卓)Tools 属性拯救你了
  3. 范例解析:学习Android的IPC主板模式
  4. Android应用程序资源——Animation动画资源
  5. android 新浪微博客户端的表情功能的实现
  6. Android视频图片缩略图的获取
  7. Android(安卓)UI 之TextView控件中可选择的属性列表,开发中经常用
  8. Android高手进阶教程(四)之----Android(安卓)中自定义属性(attr.
  9. Android(安卓)Bmob后端云—数据库、服务器!

随机推荐

  1. 负载均衡是什么?怎么理解负载均衡的部署方
  2. php的explode() 函数将字符串打散为数组
  3. 将字符串类型的数据转化为数值类型的数据
  4. 在php视图文件中使用element ui
  5. 配置 conda 镜像环境
  6. 总结几种常见的/需要注意到的云服务器安
  7. 关于HTTP首部的知识综合
  8. 浅谈Bootstrap的网格布局系统
  9. C语言/C++基础语句编程风格
  10. C#到底有没有指针