我正在解析这个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有什么问题吗?
答案 0 :(得分:3)
我相信这是一个知道的JDom错误。见http://www.jdom.org/pipermail/jdom-interest/2000-August/001227.html
您可能需要查看最新版本的jdom(适合您的应用程序)。
答案 1 :(得分:1)
有人可以尝试为您识别错误,但我要做的是从非常小的xml
开始,比如说
<Root></Root>
并继续添加,直到我收到错误,然后看看数据中的内容导致了错误。
答案 2 :(得分:1)
属性名称与“=”之间或“=”与属性值之间不允许有空格。
请参阅the spec。