我正在使用saxparser解析xml,想知道这是否是实现characters方法的正确方法。
假设有一个名为elementvalue的类级字符串变量,并且在startElement方法中将其初始化为。
以下是字符方法:

@Override
public void characters(char[] ch, int start, int length)
{
    String charsToAppend = new String(ch, start, length);
    elementValue = elementValue + charsToAppend;
}

我们需要追加到目前为止的值上,这正确吗?追加是否正确?
另外,为什么characters方法给出开始索引?不是每次都是零吗?
谢谢。

最佳答案

是的,您需要追加,因为不能保证读取的数据块将包含所有元素文本。
起始位置已给定,需要使用,因为数组中的其他字符可能是垃圾邮件。
但是,您应该改用StringBuffer并调用它的'append()方法,如下所示:

public void characters(char[] ch, int start, int length) {
  yourStringBuffer.append(ch, start, length);
}

09-10 07:23
查看更多