Android使用自定义的XML资源

来源:互联网 发布:arp绑定与mac绑定区别 编辑:程序博客网 时间:2024/06/12 23:21
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
原创粉丝点击