Android 解析xml文件

本文介绍在Android开发中如何创建和引用XML文件,提供了详细的代码示例,展示了如何使用XmlResourceParser解析XML数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 中原始的xml文件一般保存在/res/xml路径下,在用ADT开发中没有该文件,需要自己去创建一个xml的文件夹

成功定义一个xml资源后,在工程中若要引用该xml文件

1 在xml文件中引用语法

   xml.file_name

2 在java代码中语法格式:

 R.xml.file_name;


 在java程序中获取实际的xml文档,可以通过Resources的两个方法来获取:

    1   XmlResourceParse  getXml(int id): 获取xml文档,并 使用一个XmlPullParser来解析该xml文档,该方法返回一个解析器对象

    2  InputStream  openRawResource(int id) :获取XML文档对应的输出流


代码:

   

<?xml version="1.0" encoding="utf-8"?>
<books>
      <book price="99.0" time="2011" >Ajax讲义</book> 
      <book price="99.0" time="2009" >疯狂android讲义</book>
      <book price="99.0" time="2010" >Ajax讲义</book> 
</books>
java代码

  

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Button btn = (Button)findViewById(R.id.btn1);
		OnClickListener listen = new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				XmlResourceParser xrp = getResources().getXml(R.xml.books);//获取xml文档
				try
				{
					StringBuilder  sb = new StringBuilder("");
					while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT)//判断有没有到文档的结尾处
					{
						if(xrp.getEventType() == XmlResourceParser.START_TAG)//遇到开始标签
						{
							String tagName = xrp.getName();//获取标签的标签名
							if(tagName.equals("book"))
							{
								String bookprice = xrp.getAttributeValue(null, "price");
								sb.append("价格");
								sb.append(bookprice);
								String booktime = xrp.getAttributeValue(1);//通过属性索引来获取属性值
								sb.append("   出版日期");
								sb.append(booktime);
								sb.append("书名");
								sb.append(xrp.nextText());//获取文本节点的值
							}
							sb.append("\n");
							
						}
						xrp.next();//光标下移
					}
				
					TextView show = (TextView)findViewById(R.id.text1);
					show.setText(sb.toString());
				}
				catch(XmlPullParserException e)
				{
					e.printStackTrace();
				}
				catch(IOException e)
				{
					e.printStackTrace();
				}
			
				
				
			}
		};
		btn.setOnClickListener(listen);
	}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值