Android学习札记10:用SAX解析XML文件时,当标签中出现换行符时可能出现读取内容为空的解决方法
来源:互联网 发布:网络语言暴力思修论文 编辑:程序博客网 时间:2024/05/21 07:50
当标签中出现换行时,使用传统的读取方法可能出现为空的情况:
像截图中的title标签使用下面的方法时读取到的内容就可能为空:
@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {// TODO Auto-generated method stubsuper.characters(ch, start, length);content = new String(ch, start, length);}
换用StringBuffer来读取标签中的内容就可以解决这个问题,代码如下:
public class MyHandler extends DefaultHandler{private StringBuffer sb;@Overridepublic void startDocument() throws SAXException {// TODO Auto-generated method stubsuper.startDocument();}@Overridepublic void endDocument() throws SAXException {// TODO Auto-generated method stubsuper.endDocument();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {// TODO Auto-generated method stubsuper.startElement(uri, localName, qName, attributes);//sb.delete(0, sb.length());sb = new StringBuffer();}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {// TODO Auto-generated method stubsuper.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]);}}*/}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {// TODO Auto-generated method stubsuper.endElement(uri, localName, qName);//此时的sb就是从标签中读取到的内容}}
参考资料:
1、http://blog.sina.com.cn/s/blog_83940dfb01010f8h.html
2、http://blog.csdn.net/yangxvlei1123/article/details/7385077
- Android学习札记10:用SAX解析XML文件时,当标签中出现换行符时可能出现读取内容为空的解决方法
- 当freemarker中EL表达式的值为空时出现异常的解决方法
- 用sax读取XML时不能读取换行符号后面的内容的问题
- Android Sax解析XML出现空值或脏数据的解决方案
- Android Sax解析XML出现空值或脏数据的解决方案
- SAX解析XML出现文本丢失的解决方法之一
- 读取xml文件出现错误的一个解决方法(android)
- android 实用sax 读取xml文件内容
- android 实用sax 读取xml文件内容
- Android使用SAX读取XML文件内容
- android用SAX解析xml文件时抛出org.apache.harmony.xml.ExpatParser$ParseException异常的解决方法
- android 微信支付当body标签为中文时出现编码错误的问题
- 在用c++读取xml文件时,运行时出现以下错误:出现未处理的“System.Xml.XmlException”类型的异常出现在 system.xml.dll 中
- SAX解析xml出现的问题
- Java中从txt文件中读取和存储内容出现乱码的解决方法
- Dom4J读取XML文件时出现的connection timed out:connect Nested exception异常解决方法
- android中使用SAX读取XML文件
- android中读取txt文件内容防止出现乱码
- Android深入浅出之Audio 第二部分 AudioFlinger分析
- VS2008 远程调试
- 编译器错误消息: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。
- Ettercap : Filter规则大发送
- QTableView lock QHeadView
- Android学习札记10:用SAX解析XML文件时,当标签中出现换行符时可能出现读取内容为空的解决方法
- Android深入浅出之Audio第三部分Audio Policy[1]
- 黑马程序员--c#的委托与事件
- Java中的位移运算符
- STL之序列式容器
- 第十周C++【任务3】建立一个Point(点)类,派生出一个Circle(圆)类,派生出一个Cylinder(圆柱体)类
- 苹果iTV将拿下电视高端市场 威胁传统厂商
- 如何向已经安装好的apache添加一个模块
- STL之关联式容器