Не могу прочитать 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, а не имя файла.