не могу открыть XML-файл на Android - PullRequest
3 голосов
/ 07 декабря 2011

Я работаю над приложением для Android, в котором я хочу проанализировать XML-файл как локальный ресурс.Я использую jdom для его анализа, но у меня проблема, я не могу открыть файл и не знаю почему.Ошибка в этой строке:

document = builder.build(new File("res/xml/data.xml"));

Файл находится в папке res / xml моего проекта.Я получил эту ошибку:

java.io.IOException: Couldn't open file:/res/xml/data.xml
Caused by java.io.FileNotFoundException :res/xml/data.xml

Я попробовал это:

document = builder.build(new File("data.xml"));

, но это не сработало.Я не знаю, почему файл не найден.

У вас есть идея?

Заранее спасибо


Спасибо за ваше предложение.«Путь Uri» работает, но не строка

document = builder.build(new File(path));

Класс метода File должен иметь тип entree String.Я попробовал это:

document = builder.build(new File(path.getPath());

, но он вернул ноль и

document = builder.build(new File(path.toString());

Я получил ту же ошибку.У вас есть идея?Заранее спасибо !!

Ответы [ 3 ]

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

Я полагаю, вам нужно будет использовать URI в конструкторе файлов, который указывает на файл data.xml.

Попробуйте что-то вроде этого:

Uri path = Uri.parse("android.resource://my.package.here/" + R.xml.data);
document = builder.build(new File(path));

Это руководство также может здесьбыть полезным: http://androidbook.blogspot.com/2009/08/referring-to-android-resources-using.html

1 голос
/ 08 декабря 2011

Если это ресурс внутри вашего приложения, вам следует использовать методы Resources, такие как getXml (). Вы можете получить экземпляр класса rources из объекта Context

0 голосов
/ 15 февраля 2014
InputStream is = context.getResources().openRawResource(R.raw.data);

BufferedReader br = new BufferedReader(new InputStreamReader(is));

document = builder.build(br);

Обязательно поместите файл data.xml в папку res / raw-.

...