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     }

解析后的结果如下:

时间: 2024-11-07 13:50:04

Android中解析XML的方法的相关文章

android 中解析XML的方法(转)

在XML解析和使用原始XML资源中都涉及过对XML的解析,之前使用的是 DOM4J和 XmlResourceParser 来解析的.本文中将使用XmlPullParser来解析,分别解析不同复杂度的test1.xml.test2.xml.test3.xml.代码如下: MainActivity: package com.home.xmlparsetest; import java.io.IOException; import java.io.InputStream; import java.ut

Android中解析XML

XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能.今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法. 在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,下面,我将一一向大家详细介绍. SAX解析器: SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事

Android中解析XML文件

大家都知道解析XML的方式就只有两种方式: 1.驱动式解析方式: 例如:SAX方式和PULL方式. 2.全部加载到内后解析: 例如:DOM解析. Apache对SAX和DOM解析方式都封装了相应的类库,而Android内置了PULL的解析类库. 看到一篇博客分析的很详细: http://blog.sina.com.cn/s/blog_b37dcd970101dajz.html

Android DOM解析XML方法及优化

在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML.解析XML的方法有DOM, SAX, JDOM, DOM4J,本文中只使用了DOM,下面先介绍DOM的基础知识和解析XML的方法,然后再结合一个项目实例来实现从XML文件的下载到解析整个过程. DOM(Document Object Model,文档对象模型)定义了访问和操作XML的标准方法.基于

Android中解析与创建XML文件

Android中解析与创建XML文件 在Android中对XML的操作有多种方式,常见的有三种方式:SAX.DOM和PULL方式. DOM方式会把整个XML文件加载到内存中,在PC上常使用DOM的方式. 但是在性能敏感的设备上,主要采用的是SAX的方式,但是缺点是嵌套多个分支的时候处理不是很方便. 而PULL的方式类似SAX方式,同样很节省内存. 因此,本文章中只提供PULL的方式解析与创建XML文件. 基础类 本例中使用的实体类的定义如下: public class CAddress impl

android pull 解析xml方式

先获取到一个XmlPullParserFactory实例 通过实例得到XmlPullParser对象 调用XmlPullParser的setInput()方法将服务返回的XML数据设置进去开始解析 通过getEventType()可以得到当前的解析事件 While循环不断地进行解析 如果当前的解析事件不等于XmlPullParser.END_DOCUMENT,说明解析工作还没完成,调用next()方法后可以获取下一个解析事件. 在while循环中,我们通过getName()方法得到当前结点的名字

java和android的解析xml的方式

java解析xml经典的有四种方式: 1.dom 2.sax 3.jdom 4.dom4j   个人觉得dom4j好用,但是我只用过jdom. android我知道的用两种方式,sax和pull SAX方式的特点是需要解析完整个文档才会返回,如果在一个XML文档中我们只需要前面一部分数据,但是使用SAX方式还是会对整个文档进行解析,尽管XML文档中后面的大部分数据我们其实都不需要解析,因此这样实际上就浪费了处理资源. Pull解析器和SAX解析器虽有区别但也有相似性.他们的区别为:SAX解析器的

解决Android中fragment_main.xml文件中的组件获取的问题

package com.dhy.phonedial; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.Me

android 中生成xml文件

在Android中生成xml文件真的很简单,下面提供2中方法,一种是通过String写入到文件,另外一种是通过XML 的 XmlSerializer. 以后遇到Android写xml内容就不会困惑了 1.通过string写入文件 String name=mEtName.getText().toString(); String age=mEtAge.getText().toString(); String Id=mEtID.getText().toString(); File file=new F