使用DefaultHandler无法完全解析XML的CDATA数据的问题

 android通过继承DefaultHandler来实现对xml的sax解析,但是今天发现了一个问题,解析一个特定的xml的CDATA部分时,CDATA数据被拆分成了两部分。

断点跟踪代码,发现解析CDATA数据时,characters()方法被调用了两次。

在StackOverflow搜索发现其他人也有类似的问题,原来类DefaultHandler实现的接口ContentHandler中characters()有如下说明

SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks


于是在endElement()的时候,将解析的两部分CDATA数据连在一起,搞定

stackoverflow中帖子的链接http://stackoverflow.com/questions/5048759/defaulthandler-class-in-android-doesnt-read-entire-string-from-xml

你可能感兴趣的:(xml,android,character)