SAXBuilder构建抛出java.lang.StringIndexOutOfBoundsException

时间:2011-09-19 12:13:30

标签: java exception saxparser

我正在解析这个xml

<Root><Status>1</Status><Message>Get call Successful</Message><StatusCode></StatusCode><Item type = 'all' subtype = '0' ><subItem><rank>0</rank><name>humywe12</name><value>4500</value></subItem></Item></Root>

我正在使用此代码解析它

SAXBuilder builder = new SAXBuilder();
Document doc = null;
xml = xml.replaceAll("\t", "");
StringReader r = new StringReader(xml);
try {
    doc = builder.build(r); <-----here it throws error
} catch (IOException e) {
    // e.printStackTrace();
    throw e;
} catch (Exception e) {
    // e.printStackTrace();
    throw e;
}
return doc;
}

builder.build(r)它抛出异常StringIndexOutOfBoundsException。

我做错了吗?

更新 好吧,我只删除了这些标签“type ='all'subtype ='0'”,现在它没有给出java.lang.StringIndexOutOfBoundsException。 SAXBUILDER有什么问题吗?

3 个答案:

答案 0 :(得分:3)

我相信这是一个知道的JDom错误。见http://www.jdom.org/pipermail/jdom-interest/2000-August/001227.html

您可能需要查看最新版本的jdom(适合您的应用程序)。

答案 1 :(得分:1)

有人可以尝试为您识别错误,但我要做的是从非常小的xml开始,比如说

<Root></Root>

并继续添加,直到我收到错误,然后看看数据中的内容导致了错误。

答案 2 :(得分:1)

属性名称与“=”之间或“=”与属性值之间不允许有空格。

请参阅the spec