Сборка SAXBuilder генерирует исключение java.lang.StringIndexOutOfBoundsException - PullRequest
2 голосов
/ 19 сентября 2011

Я анализирую этот 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 ]

3 голосов
/ 19 сентября 2011

Я считаю, что это была известная ошибка JDom.См. http://www.jdom.org/pipermail/jdom-interest/2000-August/001227.html

Возможно, вы захотите проверить одну из последних версий jdom (вписывается в ваше приложение).

1 голос
/ 19 сентября 2011

Пробелы не допускаются между именем атрибута и "=" или между "=" и значением атрибута.

См. Спецификация .

1 голос
/ 19 сентября 2011

Кто-то может попытаться определить ошибку для вас, но я бы начал с очень маленького xml, скажем

<Root></Root>

и продолжайте добавлять к нему, пока я не получу ошибку, а затем посмотрим, что в данных вызвало ошибку.

...