SAX解析XML文件有关characters的最大长度2048的问题

使用SAX解析XML文件,我们都知道需要重载charaters方法

[java] view plain copy
  1. @Override
  2. publicvoidcharacters(char[]ch,intstart,153); background-color:inherit; font-weight:bold">intlength)
  3. throwsSAXException

但是用这个方法会有一点问题,其中ch这个char数组的默认最长长度为2048,如果超过这个长度,将产生一个新的char数组(也是2048长度)来存储数据,于是如果我们需要解析的数据在两个char之间的话(分别在一个的尾部和下一个的头部),那么我将会得到残缺不全的数据,因此我们当我们读到char数据的末尾时,我们需要先暂时存储一下得到的数据,然后补在下一次得到的内容的前面。参考代码如下:

copy
    StringpreMaxLengthCharacters="";
  1. finalintCHARACTERS_MAX_LENGTH=2048;
  2. Stringcontent=newString(ch,start,length);
  3. if(start+length==CHARACTERS_MAX_LENGTH){
  4. preMaxLengthCharacters=content;
  5. }
  6. if(start==0){
  7. content=preMaxLengthCharacters+content;
  8. }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


xml怎么加入图片路径
rss源错误怎么解决
文件后缀xml是什么意思
xml格式电子发票怎么获取
xml格式是什么意思
rss是什么意思啊
xml格式电子发票怎么打开
rss订阅源是什么意思
rss源是什么
xml注释怎么写
php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类