Не могу прочитать XML-файл на Android

Я пытаюсь открыть и прочитать XML-файл как локальный ресурс с JDOM. Я могу открыть файл, но затем я получил сообщение об ошибке, говорящее о том, что файл xml сформирован неправильно. Вот код:

Uri path = Uri.parse("android:resource://package_name"+R.xml.data);
InputSource source = new InputSource(new StringReader(path.toString()));
document = builder.build(source);

Я получил следующую ошибку:

org.jdom.input.JDOMParseException:Error on line 1:At line 1, column 17:not well-formed (invalid token)

Вот XML-файл с моими данными:

<?xml version="1.0" encoding="utf-8"?>
<data>
  <person>
    <name>Name1</name>
    <firstname>Firstname1</firstname>
  </person>
  <person>
    <name>Name2</name>
    <firstname>Firstname2</firstname>
  </person>
</data>

У вас есть идея? Заранее спасибо.

2 ответа

Решение

Ваш InputSource не читает ресурс, он читает путь к ресурсу (который не является правильно сформированным XML-файлом:))

Если вы включаете ресурс XML в Android, он будет предварительно проанализирован во время сборки, поэтому вы не хотите использовать JDOM для его чтения. (Если вы действительно хотите прочитать его в DOM, включите его в качестве необработанного ресурса)

Вместо этого используйте Resources.getXml(R.xml.data), который вернет XmlPullParser

Если вам это нужно в DOM, поместите его в raw/ resources и получите ваш читатель для вашего InputSource из openRawResource()

Я не уверен, что вы ссылались на файл правильно, так как файл XML выглядит нормально. Я бы проверил указанный вами путь к файлу, так как R.xml.data просто возвращает int, а не имя файла.

Другие вопросы по тегам