初学Android 使用自定义的XML资源 十八

                使用自定义的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文件内容




           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值