第一步:解析文档为一下文档

<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="A001">
<name>zhangsan</name>
<sex>male</sex>
<age>12</age>
<address>beijing</address>
</student>
<student id="A002">
<name>lisi</name>
<sex>male</sex>
<age>13</age>
<address>beijing</address>
</student>
</students>

第二步:下载xml文档

public static InputStream downloader(String path) {
InputStream inputStream = null;
try {
URL url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
inputStream = httpURLConnection.getInputStream();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return inputStream;
}

第三步:解析过程

private void xmlPullParser(InputStream inputStream) {
try {
// 定义SAXParserFaco
xmlPullParserFactory = XmlPullParserFactory.newInstance();
xmlPullParser = xmlPullParserFactory.newPullParser();
// xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(inputStream, "UTF-8"); int eventType = xmlPullParser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) {
currentTagName = xmlPullParser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Student>();
break;
case XmlPullParser.START_TAG:
if ("student".equals(currentTagName)) {
// 实例化Student对象
student = new Student();
// 获取属性ID
student.setId(xmlPullParser.getAttributeValue(0));
} else if ("name".equals(currentTagName)) {
student.setName(xmlPullParser.nextText());
} else if ("sex".equals(currentTagName)) {
student.setSex(xmlPullParser.nextText());
} else if ("age".equals(currentTagName)) {
student.setAge(Integer.parseInt(xmlPullParser
.nextText()));
} else if ("address".equals(currentTagName)) {
student.setAddress(xmlPullParser.nextText());
}
break;
case XmlPullParser.END_TAG:
list.add(student);
printout(student);
break;
case XmlPullParser.END_DOCUMENT:
System.out.println("end_document");
break; default:
break;
}
eventType = xmlPullParser.next();
} } catch (Exception e) {
// TODO: handle exception }
}

实体类参考

package com.bjhksj.pull;

public class Student {
private String id; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} private int age; public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} private String sex; public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} private String address; public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
}
}

解析XML文档之二:使用PULL解析的更多相关文章

  1. 浅谈用java解析xml文档(二)

    上一文中总结了dom解析xml文档的方式,本文开始总结使用SAX解析xml 的方式及它的优缺点! SAX(Simple API for XML),是指一种接口,或者一个软件包. 首先我们应该知道SAX ...

  2. SAX解析XML文档——(二)

    SAX从上向下解析,一行一行解析.节省内存,不适合CRUD. XML文档: <?xml version="1.0" encoding="UTF-8"?&g ...

  3. 解析XML文档之三:使用DOM解析

    dom解析方法是将整个xml文档装载到内存当中,然后通过树形结构方式去解析的,这种方式只适合于在pc端的开发,不是很适合手机端的开发,毕竟来说手机的内存是没法跟pc相提并论的. 具体实现步骤如下: 第 ...

  4. 解析XML文档之一:使用SAX解析

    使用sax解析xml方法总结 解析的的xml文档格式如下 <?xml version="1.0" encoding = "UTF-8"?> < ...

  5. 使用JDom解析XML文档模拟Spring的配置文件解析

    在J2EE项目中可能会涉及到一些框架的使用,最近接触到了SSH,拿Spring来说配置文件的使用是相当重要的,Spring的配置文件是一个xml文件,Spring是如何读取到配置文件并进行依赖注入的呢 ...

  6. 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  7. java 解析XML文档

    Java 解析XML文档 一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优 ...

  8. 浅谈用java解析xml文档(四)

    继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使 ...

  9. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

随机推荐

  1. js 处理url中文参数 java端接收处理

    正常情况下当http请求中带有中文参数时,浏览器会自动对中文进行一次编码(按照当前页面的pageEncoding),java端容器会对接收到的参数自动进行一次转码,则request.getParame ...

  2. iOS开发,hook系统Objective-C的函数

    我们都知道在windows下可以通过API轻松的hook很多消息,IOS也可以实现hook的功能. 建立一个 TestHookObject类 // // TestHookObject.m // Tes ...

  3. 对线性回归,logistic回归和一般回归的认识

    原文:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html#3281650 对线性回归,logistic回归和一般回归的认识 ...

  4. #maven解决乱码问题

    <build>        <plugins>        <plugin>        <groupId>org.apache.maven.pl ...

  5. 安卓Design包之CollapsingToolbarLayout(可折叠的工具栏布局)的简单使用

    转自: CollapsingToolbarLayout的使用 注意:使用前需要添加Design依赖包,使用toolbar时需要隐藏标题头 CollapsingToolbarLayout作用是提供了一个 ...

  6. Java学习笔记——JDK1.7的新特性。

    1,switch中可以使用字串 Java代码: String s = "test"; switch (s) { case "test" : System.out ...

  7. (六)u-boot2013.01.01 for TQ210:《精简u-boot文件目录,定制自己的目标板》

    1. 删改U-boot代码结构 把不用到的和与我们s5pv210移植无关的硬件平台代码统统删除,眼不见为净.这样代码看起来就干净利落多了. 1.1.进入arch目录,删掉除arm以外的目录 处理前: ...

  8. 重构12-Break Dependencies(打破依赖)

    有些单元测试需要恰当的测试“缝隙”(test seam)来模拟/隔离一些不想被测试的部分.如果你正想在代码中引入这种单元测试,那么今天介绍的重构就十分有用.在这个例子中,我们的客户端代码使用一个静态类 ...

  9. Spring学习总结一——SpringIOC容器一

    什么是spring spring是一个开源的轻量级的应用开发框架,它提供了IOC和AOP应用,可以减少组件之间的耦合度,即 解耦,spring容器可以创建对象并且管理对象之间的关系. 一:实例化spr ...

  10. Could not load the "btn_020.disable.png" image referenced from a nib in the bundle with identifier "com.xxx.---0710"

    照此方法打开引用你这个图片的sb或者xib: 然后搜索你的这个图片名称: 删除这个图片名称的引用.如果还是不行的话,就删除此sb或xib文件然后重新创建.