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

系统 2226 0

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

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


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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论