我正在使用VTD-xml v2.11并尝试使用getContentFragment获取标记的内容。当xml具有utf-8编码时,代码工作正常。但是对于UTF-16编码,偏移和len转换失败。
while ((i = ap.evalXPath()) != -1) {
long l = vn.getContentFragment();
if (l != -1) {
int len = (int) (l >> 32);
int offset = (int) l;
sb.append(vn.toString(offset, len));
}
}
这适用于UTF-8 xmls,但是对于UTF-16,当我们调用toString(offset,len)方法时,它会抛出arrayindexoutofBound。请帮助理解如何处理UTF-16编码的xml字符串的长度和偏移量。
提前致谢...
答案 0 :(得分:0)
我认为这可能已在2.13.1版本的vtd-xml中得到修复。你能下载它并再试一次吗?