随机?!解析错误

时间:2013-02-11 12:06:57

标签: android xml saxparser

我在android中使用SAX Parser。我必须像这样更改EventHandler:

else if(xGrowerNotes){
              profile.setGrowerNotes(profile.getGrowerNotes()+chars);
              //random bug
          }

我有一个4种语言的XML文件版本,UTF-8编码。我用

调用解析器
is.setEncoding("UTF-8");

3种语言工作正常,然而,西班牙语令我烦恼。 它起初就像没有apretar las plantas。 Regul ...并且该事件被称为2次。没有改变的意思,它将削减第一部分并且仅设置“ar las plantas.Regul ...”作为文本。如果我在字符串前添加“test 1 2 3”,则剪切移动,这意味着它就像前13个字符被切割一样。它仅在西班牙语版本中,并且所有文档都是相同的编码。在文本末尾添加“test 1 2 3”会扩展第二个字符串。

有人可以澄清一下吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

来自documentation

  

Parser将调用此方法来报告每个字符数据块。 SAX解析器可以在一个块中返回所有连续的字符数据,或者它们可以将它分成几个块;但是,任何单个事件中的所有字符都必须来自同一个外部实体,以便Locator提供有用的信息。

这意味着您不能假设在一次通话中获取所有字符数据。必须附加可能在多个调用中报告的所有块以获取完整数据。