Android 4.0.3 parse XML: Неожиданный токен (позиция: ТЕКСТ @1: 2

71
7

Я пытаюсь разобрать XML и получить следующую ошибку, что может быть проблема?


I/System.out(8058): Неверная структура XML файла: Неожиданный токен (позиция: ТЕКСТ @1: 2 в java.io.StringReader@4113db88)



Это метод, который я анализирую с помощью


public final static Document XMLfromString(String xml){

Document doc = null;

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {

DocumentBuilder db = dbf.newDocumentBuilder();

InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);

} catch (ParserConfigurationException e) {
System.out.println("XML parse error: " + e.getMessage());
return null;
} catch (SAXException e) {
System.out.println("Wrong XML file structure: " + e.getMessage());
return null;
} catch (IOException e) {
System.out.println("I/O exeption: " + e.getMessage());
return null;
}

return doc;

}


И вот XML, который я пытаюсь проанализировать:


<?xml version="1.0" encoding="UTF-8"?>
<app>
<Date Value="02.07.2012">
</Date>
</app>

спросил(а) 2012-07-05T12:28:00+04:00 8 лет, 4 месяца назад
1
Решение
81

Кажется, что это не похоже на знак вопроса. Можете ли вы сохранить файл XML с правильной кодировкой? (UTF-8)

ответил(а) 2012-07-05T12:34:00+04:00 8 лет, 4 месяца назад
59

Ваша строка java в кодировке UTF-16 будет использоваться по умолчанию. Чтобы создать документ с помощью строки, попробуйте следующее:

Document doc = db.parse(new ByteArrayInputStream(xmlData.getBytes())); 

ответил(а) 2012-10-11T09:58:00+04:00 8 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема