не могу прочитать XML-файл на Android - PullRequest
1 голос
/ 14 декабря 2011

Я пытаюсь открыть и прочитать 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 ]

4 голосов
/ 14 декабря 2011

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

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

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

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

2 голосов
/ 14 декабря 2011

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

...