Android使用自定义的XML资源

1、下面先定义一个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>  

2、下面在主界面中放一个按钮,点击时解析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();  
                }  
            }  
        });  
    }  
}  


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值