当标签中出现换行时,使用传统的读取方法可能出现为空的情况:
像截图中的title标签使用下面的方法时读取到的内容就可能为空:
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
content = new String(ch, start, length);
}
换用StringBuffer来读取标签中的内容就可以解决这个问题,代码如下:
public class MyHandler extends DefaultHandler{
private StringBuffer sb;
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
}
@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);
//sb.delete(0, sb.length());
sb = new StringBuffer();
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
sb.append(ch, start, length);
/* for(int i = start; i < start + length; i++) {
switch (ch[i]) {
case '\\':
sb.append("\\\\");
break;
case '\r':
sb.append("\\r");
break;
case '\n':
sb.append("\\n");
break;
case '\t':
sb.append("\\t");
break;
default:
sb.append(ch[i]);
}
}*/
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
//此时的sb就是从标签中读取到的内容
}
}
参考资料:
1、http://blog.sina.com.cn/s/blog_83940dfb01010f8h.html
2、http://blog.csdn.net/yangxvlei1123/article/details/7385077
分享到:
相关推荐
一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml文件的实例
Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用
使用SAX方式解析XML SAX 是读取和操作 XML 数据的更快速、更轻量的方 法。SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。它不涉及 DOM 所必需的开销和概念跳跃。 SAX API是一个基于事件...
Sax解析XML文件解
sax解析xml本地读取xml,希望对你有用
使用sax解析从网络上获取的xml文件
SAX解析超大XML文件 示例代码 SAX解析超大XML文件 示例代码 SAX解析超大XML文件 示例代码
android 学习笔记1--SAX解析XML,了解下如何用sax解析xml吧
绝对可用的SAX解析XML文件项目,费了九牛二虎之力,才找到的好资源,特与大家共享出来。直接导入eclipse就可运行,无需任何配置。
android用sax解析xml文件实例源码
读取和解析xml文件
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
NULL 博文链接:https://z251257144.iteye.com/blog/1356394
Android 创建与解析XML Sax方式
在Android中,使用SAX和PULL解析XML,本项目中以解析天气预报为例。 详情见博客:http://blog.csdn.net/yalin18/article/details/7437752
java学习笔记——使用DOM解析XML和使用SAX解析XML
Java SAX解析Xml Demo(详细注释)
Android SAX 解析XML SAX 解析XML(通用)
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
android使用SAX解析XML