这很奇怪。。
我有一个 DefaultHandler 实际上可以很好地处理所有事情,但有时,没有明显的原因,它会给我 0 而不是正确的值。每次都在同一个地方发生这种情况,所以出了点问题,但我不知道是什么!
问题是这样的。我正在解析像“17:00:00”这样的时间。当解析器到达“奇怪的时间”时,它会像这样解析它->“17:00:0”,再调用一次方法characters(char[] ch, int start, int end),然后解析最后一个“0”。
怎么回事?
实际上,它将结束设置为 7 而不是 8。这适用于除少数值之外的所有内容!
代码非常简单,它只是一个简单的 saxparser。这是字符方法:
public void characters(char[] ch, int start, int end) {
if(on_element)
value = new String(ch, start, end);
}
有什么提示吗?