Android之SAX解析笔记
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解析笔记的更多相关文章
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android使用SAX解析XML(4)
util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...
- Android使用SAX解析xml
一.理论准备 SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...
- Android使用SAX解析XML(1)
可扩展标记语言XML是一种数据交换格式,允许用户自己定义,适合Web传输,能提供独立于程序的数据.XML在Android中也有广泛的应用,Android解析XML的方法有很多,本文介绍使用SAX(Si ...
- Android使用SAX解析XML(5)
parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...
- Android使用SAX解析XML(3)
主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...
- Android使用SAX解析XML(6)
应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.
- Android使用SAX解析XML(2)
school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口. package com.hzhi.my_sax; import jav ...
- Android XML文档解析(一)——SAX解析
---------------------------------------------------------------------------------------------------- ...
随机推荐
- nw打包vue项目exe
首先需要下载nw,然后解压打开,如图: 在以上新建一个同级项目文件夹,然后把把项目打包,将dist中的static文件夹与index.html放入,并新建一个package.json(可使用npm i ...
- Navicat12安装与激活
安装Navicat 1.下载软件和激活工具 链接:https://pan.baidu.com/s/1pFo2BkZYPpPFldG-fhbzIA&shfl=sharepset 提取码:xs97 ...
- python接口自动化:调试接口的代码(无token情况下)
实现代码如下: #接口调试 import requests,time class api_demo1: def __init__(self,RequestWay,url,data): self.s=r ...
- 002/CDN-内容分发网络
CDN-内容分发网络 来自于今日头条: https://www.toutiao.com/a6531234862563590663/?tt_from=weixin&utm_campaign=cl ...
- json-server-----》基本使用
[WangQi]---json-server---基本使用 一.前后端并行开发的痛点 前端需要等待后端开发完接口以后 再根据接口来完成前端的业务逻辑 二.解决方法 在本地模拟后端接口用来测试前端效 ...
- 20191105 《Spring5高级编程》笔记-第10章
第10章 使用类型转换和格式化进行验证 在应用程序开发中,数据验证通常与转换和格式化一起被提及.因为数据源的格式很可能与应用程序中所使用的格式不同. 名词缩写: SPI(Service Provide ...
- spring boot 将对象转换为json返回
Spring Boot默认使用Jackson将对象转换为json,需要配置以下依赖: compile group: 'com.fasterxml.jackson.core', name: 'jacks ...
- Smashing Nodejs 读书笔记(一)
了不起的Node.js:将JavaScript进行到底 书名:SMASHING Node.js : JavaScript Everywhere 原作者:(美)劳奇 Rauch.G 译者:赵静 出版日期 ...
- 医院里的CR、DR、CT、磁共振、B超都是什么?
转自 百度知道MR CT CR DR DSA X线 都事医学影像疾病诊断的一种. MRI 是磁共振影像检查,可以获得横断面,矢状面和冠状面的影像.空间分辩率好. CT 是一种X线诊断设备,是一种复杂的 ...
- jdk下载安装后为什么要设置环境变量?
因为电脑不知道javac这个命令是在C:\Program Files\JAVA\jdk1.8.0_65\bin的这个路径下面,所以我们要设置好环境变量,来让电脑知道其路径