books.xml:

<?xml version="1.0" encoding="utf-8"?>
<books>
<book id="12" code="a">
<name>thinking in java</name>
<price>85.5</price>
</book>
<book id="15" code="b">
<name>Spring in Action</name>
<price>39.0</price>
</book>
</books>

MyContentHandler.java:

package com.example.xmlparse;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler; public class MyContentHandler extends DefaultHandler {
private String name;
private String price;
private String tagName; @Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
System.out.println(".............startDocument.............");
} @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
System.out.println(".............endDocument.............");
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
System.out.println(".............startElement.............");
tagName = localName;
if(localName.equals("book")) {
// 获取标签的全部属性
for(int i=0; i<attributes.getLength(); i++) {
System.out.println(attributes.getLocalName(i) + " = " + attributes.getValue(i));
}
}
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
System.out.println(".............endElement.............");
tagName = "";
if(localName.equals("book")) {
this.printout();
}
} @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
System.out.println(".............characters.............");
System.out.println(tagName);
if(tagName.equals("name")) {
name = new String(ch, start, length);
}else if(tagName.equals("price")) {
price = new String(ch, start, length);
}
} private void printout() {
System.out.println("name:" + name);
System.out.println("price:" + price);
}
}

执行代码结果:

.............startDocument.............
.............startElement.............
.............characters.............
books
.............characters.............
books
.............startElement.............
id = 12
code = a
.............characters.............
book
.............characters.............
book
.............startElement.............
.............characters.............
name
.............endElement.............
.............characters.............
.............characters.............
.............startElement.............
.............characters.............
price
.............endElement.............
.............characters.............
.............characters.............
.............endElement.............
name:thinking in java
price:85.5
.............characters.............
.............characters.............
.............startElement.............
id = 15
code = b
.............characters.............
book
.............characters.............
book
.............startElement.............
.............characters.............
name
.............endElement.............
.............characters.............
.............characters.............
.............startElement.............
.............characters.............
price
.............endElement.............
.............characters.............
.............characters.............
.............endElement.............
name:Spring in Action
price:39.0
.............characters.............
.............endElement.............
.............endDocument.............

注意:

XML报文中行尾的\n跟行首的\t都会调用characters

Android之SAX解析笔记的更多相关文章

  1. Android之SAX解析XML

    一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...

  2. Android使用SAX解析XML(4)

    util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...

  3. Android使用SAX解析xml

    一.理论准备     SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...

  4. Android使用SAX解析XML(1)

    可扩展标记语言XML是一种数据交换格式,允许用户自己定义,适合Web传输,能提供独立于程序的数据.XML在Android中也有广泛的应用,Android解析XML的方法有很多,本文介绍使用SAX(Si ...

  5. Android使用SAX解析XML(5)

    parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...

  6. Android使用SAX解析XML(3)

    主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...

  7. Android使用SAX解析XML(6)

    应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.

  8. Android使用SAX解析XML(2)

    school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口. package com.hzhi.my_sax; import jav ...

  9. Android XML文档解析(一)——SAX解析

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. nginx坑记录

    问题1: 配置解析过程使用ngx_cycle->pool申请内存保存配置,结果造成野指针. 背景:需求开发过程,有一些结构需要在配置解析阶段保存,然后可以动态修改.看原来的代码配置解析都是使用c ...

  2. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_08 Map集合_2_Map常用子类

    常用的实现类HashMap 它的子类.LinkedHaspMap

  3. 《图解设计模式》读书笔记7-2 Mediator模式

    目录 Mediator模式简介 示例程序 示例程序类图 代码 Mediator模式角色和类图 角色 模式类图 思路拓展 简单化 角色复用 Mediator模式简介 Mediator模式即中介者模式,可 ...

  4. Tensorflow创建和读取17flowers数据集

    http://blog.csdn.net/sinat_16823063/article/details/53946549 Tensorflow创建和读取17flowers数据集 标签: tensorf ...

  5. PHPstorm Xdebugger最全详细

    0 Xdebug调试的原理(选看) 图0-1 单机调试原理示意图 图0-2 多机调试原理示意图 对于PHP开发,初来咋到,开发环境的搭建和理解感觉是最烦人的一件事了.不像JAVA,打开一个Eclips ...

  6. 简述Vue中的过滤器

    1.过滤器的基本概念 概念:本质上是函数: 作用:用户输入数据后,它能够进行处理,并返回一个数据结果:(无return语句不会报错,但是这种过滤器没有丝毫意义) 格式:管道符(  |  )进行连接,而 ...

  7. 从SVN下检出项目内容【步骤】

    1.新创建一个新的工作环境,然后new--->other--->SVN 2.点击Next,然后进行检出项目的操作,如下图所示: 3.再点击Next,进行输入指定的url地址,从指定的url ...

  8. sql语句中【模糊查询like的使用】

    1.like的使用: 在数据库软件中进行测试时,书写的格式是: 比如: select * from fdx.dbo.[User] where 1=1 and name like '%'+'a'+'%' ...

  9. 自己挖的坑自己填--docker创建实例出现Waiting for SSH to be available…

    在之前使用Docker for Windows Installer.exe直接安装,通过docker-machine-driver-vmwareworkstation.exe实现docker和VM的共 ...

  10. js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter

    对象的数据属性 Configurable,Enumerable,Writable,Value var person = {} Object.defineProperty(person,'name',{ ...