package com.example.day14_xmlpull; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.os.Bundle; import android.app.Activity; import android.util.Xml; import android.view.Menu; import android.view.View; /** * 解析Xml * * @author gaoyn * */ public class MainActivity extends Activity { List<Person> persons = new ArrayList<Person>(); private String tagname; Person p; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 解析xml文件的方法 public void pullxml(View v) { // 1 得到pull解析器 XmlPullParser xmlParser = Xml.newPullParser(); try { // 2 加载需要解析的文件 xmlParser.setInput(getAssets().open("data.xml"), "utf-8"); // 3 开始读取文档 int type = xmlParser.getEventType(); // 如果文档没有读到结束标签,循环进行读取文档内容 while (type != XmlPullParser.END_DOCUMENT) { // 读取tag标签 switch (type) { case XmlPullParser.START_DOCUMENT: System.out.println("开始读取文档+++++++++++++++++"); break; case XmlPullParser.START_TAG: // 如果读取到开始标签,把标签名进行读取<person> tagname = xmlParser.getName(); System.out.println(tagname+"++++++++++++++++标签名"); if (tagname.equals("person")) { p = new Person(); // 得到标签person中的属性值 String sid = xmlParser.getAttributeValue(0).trim(); p.setId(Integer.parseInt(sid)); } break; case XmlPullParser.TEXT: if (tagname.equals("name")) { p.setName(xmlParser.getText()); } else if (tagname.equals("age")) { // System.out.println(xmlParser.getText()); String sage = xmlParser.getText().trim(); p.setAge(Integer.parseInt(sage)); } break; case XmlPullParser.END_TAG: //结束时,对标签名赋值 tagname=xmlParser.getName(); //如果结束标签为</person> if (tagname.equals("person")) { persons.add(p); } tagname=""; break; default: break; } /** * 业务逻辑处理 */ type = xmlParser.next(); } System.out.println("文档读取完毕++++++++++++++++++" + persons); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
与传统的DOM解析器或SAX解析器不同,XML_PullParser采用基于令牌的解析模型,这种模型对于处理大型XML文档尤其有益,因为它降低了内存消耗并提高了性能。 在基于事件的解析模型中,如SAX解析,解析器在遇到XML文档...
而“Xml.zip_pull_xml pull”这个主题则涉及到了一种更高效的解析方法——Pull解析。 Pull解析器(XML Pull parsing)是一种事件驱动的解析方式,它不需要一次性加载整个XML文档,而是按需读取,逐个处理XML元素。...
此项目与XML解析有关,它采用的是Pull Parser模式,这是一种轻量级、低级别的XML解析技术。Pull Parser允许应用程序在解析过程中主动“拉取”XML数据,而不是等待解析器推送事件,这使得它在处理大型XML文档时非常...
本示例"pull_xml_demo"是关于如何使用Android的PullParser解析XML的演示。Pull解析器是一种轻量级、低内存占用的解析方式,特别适合处理大文件或者网络流中的XML数据。 PullParser提供了事件驱动的解析模型,它会...
对于Android,通常使用Java的DOM、SAX或Pull解析器来处理XML。 6. **实例代码**: 压缩包可能包含了演示如何在VB中使用XMLDocument类读取和操作XML文件的代码片段。这些示例代码可以帮助初学者理解XML操作的基本...
在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...
本资料包“xml.rar”主要关注Android环境下的XML解析,特别是SAX解析器,同时也涵盖了DOM和Pull解析方式。 1. XML基本概念: XML是一种自描述性的标记语言,它通过标签来定义数据结构。每个XML文档都包含元素、...
XML_PULL是基于事件的解析方式,与SAX类似,但不依赖于Java平台。在Android中,可以使用`XmlPullParser`接口来实现。读取RSS的步骤: 1. 获取`XmlPullParser`实例,可以使用`XmlPullParserFactory`创建。 2. 设置...
本教程将详细介绍如何在Android中使用Java XML解析器,特别是Pull解析器来处理XML内容。 一、XML基本概念 XML是一种自描述性的文本格式,通过标签来定义数据结构和内容。它与HTML类似,但更注重数据的结构,而不是...
通常我们调用`newInstance()`方法,并设置解析模式为`XML_PULL_PARSER`。 ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser =...
在Android中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或Pull Parser来解析XML数据。DOM解析器会将整个XML文档加载到内存中,适合小型XML文件;SAX解析器则是一种事件驱动的方式,逐行...
本文将深入探讨如何在Android中使用两种常见的XML解析技术——SAX(Simple API for XML)和PULL(Pull Parser)来解析天气预报的XML数据。这两种方法各有优缺点,适用于不同的场景。 首先,我们来看SAX解析器。SAX...
XML(Extensible Markup Language)是一种用于标记...对于初学者,建议从简单的XML文件开始,理解DOM、SAX和Pull解析的工作原理,然后逐渐尝试处理更复杂的数据结构。同时,注意优化解析性能,尤其是在处理大量数据时。
本篇文章将深入探讨如何使用Pull解析器来读取XML文件,以及如何生成XML文件。Pull解析器是一种轻量级的解析方式,它允许程序在解析XML时按需获取数据,而不需要一次性加载整个文档到内存,从而提高了效率和资源利用...
3. StAX(Streaming API for XML):介于DOM和SAX之间,它允许程序以拉式(pull-based)方式按需解析XML,降低了内存消耗,同时编程接口比SAX更友好。 在视频中,DOM4J的使用是重点。DOM4J是一个开源的、灵活的Java...
- 解析示例可能演示如何读取XML文件,然后使用DOM、SAX或Pull解析器来提取数据。 5. **最佳实践**: - 在序列化和反序列化时,注意处理异常,确保数据的完整性和一致性。 - 对于大型XML文件,优先考虑SAX或Pull...
在分析和使用“XML_OPPO_frame.zip”中的文件时,开发者需要熟悉Android SDK和XML解析库,例如DOM、SAX或Pull解析器。同时,理解Android的生命周期管理和组件交互也是必要的,以便正确地应用和响应XML定义的行为。...
这些脚本可能使用XML解析库,如DOM、SAX或Pull解析器来读取和处理XML数据,然后执行相应的操作。 在实际应用中,这样的脚本可能包含以下部分: 1. **XML结构**:定义服务流程的开始、结束节点以及中间的各个步骤,...
Android_JieXi_Pull_Reader可能是一个示例代码库,展示了如何在Android中使用XMLPullParser进行XML解析。XMLPullParser是Android SDK提供的一种解析XML的API,它可以顺序地读取XML文档,逐个处理开始标签、结束标签...
在这个"google天气预报XML-Pull解析版(完全解析)"中,我们将探讨如何利用XML-Pull解析技术来处理从Google天气API获取的数据。 XML-Pull解析是一种轻量级的解析方法,与DOM(Document Object Model)和SAX(Simple...