使用VTDXML为UTF-16编码的xml解析ContentFragment

时间:2017-04-05 21:07:44

标签: java xml vtd-xml

我正在使用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字符串的长度和偏移量。

提前致谢...

1 个答案:

答案 0 :(得分:0)

我认为这可能已在2.13.1版本的vtd-xml中得到修复。你能下载它并再试一次吗?