首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
移动开发
> 详细
android之XML文件解析 -- SAX
时间:
2014-12-03 17:16:59
阅读:
173
评论:
0
收藏:
0
[点我收藏+]
标签:
xml解析
sax事件驱动
xml文件解析之SAX
下面的实例代码主要采用的是SAX事件驱动处理机制来解析XML文件,SAX解析XML是通过逐行扫描的方式完成的,占用内存小。dom机制是将文件全部读出,然后再以树结构的形式,来完成查找、删除等操作,对内存占用较大
MyContentHandler
.java 此文件是事件处理器实现
package com.example.analysisxml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyContentHandler extends DefaultHandler {
String tagName;
String id,name,sex;
//获取标签的内容,标签开始和标签结束,都会调用
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
//防止标签结束后继续执行下面操作
if(tagName == null)
return;
String str = new String(ch, start, length);
if(tagName.equals("name")){
name = str;
}
else if(tagName.equals("sex")){
sex = str;
}
//System.out.println("tagName =" + tagName + ";str = " + name);
}
//文档结束时调用
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
System.out.println("-------------end------------");
}
//标签结束时调用
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
//标签结束后防止调用characters()方法执行操作
tagName = null;
if(localName.equals("worker")){
System.out.print("name = " + name);
System.out.print(" sex = " + sex);
System.out.println();
}
}
//文档开始
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
System.out.println("-------------start------------");
}
//标签开始
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
tagName = localName;
//System.out.println("tagName =" + tagName);
if(localName.equals("worker")){
for(int i = 0;i < attributes.getLength();i++){
System.out.println(attributes.getLocalName(i) + " = " + attributes.getValue(i));
}
}
}
}
以下代码是实现调用解析xml 字符串
strXML
//创建一个SAX解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
XMLReader reader = factory.newSAXParser().getXMLReader();
//为XMLReader设置事件处理器
reader.setContentHandler(new MyContentHandler());
//开始解析XML
reader.parse(new InputSource(new StringReader(strXML)));
XML文件的格式如下:
<workers>
<worker id="001">
<name>
same
</name>
<sex>man</sex>
</worker>
<worker id="002">
<name>
<sex>man</sex>
</worker>
<worker id="002">
<name>
rose
</name>
<sex>man</sex>
</worker>
<worker id="003">
<name>
<sex>man</sex>
</worker>
<worker id="003">
<name>
jack
</name>
<sex>man</sex>
</worker>
</workers>
<sex>man</sex>
</worker>
</workers>
android之XML文件解析 -- SAX
标签:
xml解析
sax事件驱动
原文地址:http://blog.csdn.net/ajhsdj/article/details/41698897
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
关闭苹果IOS app自动更新
2021-07-29
开发一个即时通讯App
2021-07-28
iOS 跳转App Store进行评分
2021-07-26
诺基亚短信生成!太好玩了
2021-07-26
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
2021-07-26
Android系统编程入门系列之界面Activity响应丝滑的传统动画
2021-07-26
uniapp h5,app两端复制文本
2021-07-22
uni-app滚动视图容器(scroll-view)之监听上拉事件
2021-07-21
新型横向移动工具原理分析、代码分析、优缺点以及检测方案
2021-07-19
Android系统编程入门系列之界面Activity交互响应
2021-07-19
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!