Android中解析XML的方法

假设我要解析如下的XML文件:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <books>
3     <book price="99.0" 出版日期="2008年">疯狂java讲义</book>
4     <book price="199.0" 出版日期="2009年">疯狂android讲义</book>
5     <book price="79.0" 出版日期="2010年">疯狂讲义</book>
6 </books>

首先将该文件放到res/xml文件夹下,如果没有可以手动建立,然后解析代码如下:

 1 public void xmlparser(View v) {
 2 
 3         XmlResourceParser xmlResourceParser = getResources().getXml(R.xml.books);// 获取xml文件的解析器
 4         try {
 5             StringBuilder sb = new StringBuilder();
 6             while (xmlResourceParser.getEventType() != XmlResourceParser.END_DOCUMENT) {// 如果没有到文档的结尾处
 7                 if (xmlResourceParser.getEventType() == XmlResourceParser.START_TAG) {// 如果遇到标签的开始标记,就开始读取类容
 8                     // 获取标签的签名
 9                     String tagName = xmlResourceParser.getName();
10                     if (tagName.equals("book")) {
11 
12                         String bookPrice = xmlResourceParser.getAttributeValue(0);// 获取标签中的第一个属性的值,这里是“price”的值
13                         String bookdata = xmlResourceParser.getAttributeValue(1);// 获取标签中的第二个属性的值,这里是“出版日期”的值
14                         String bookName = xmlResourceParser.nextText();// 获取文本节点的值,这里是书的名字
15 
16                         sb.append("价格:");
17                         sb.append(bookPrice);
18                         sb.append("出版日期:");
19                         sb.append(bookdata);
20                         sb.append("书名:");
21                         sb.append(bookName);
22                         sb.append("\n");
23                     }
24 
25                 }
26                 xmlResourceParser.next();// 获取解析器的下一个事件
27 
28             }
29 
30             textView.setText(sb.toString());
31 
32         } catch (XmlPullParserException e) {
33             e.printStackTrace();
34 
35         } catch (IOException e) {
36             e.printStackTrace();
37         }
38 
39     }

解析后的结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值