无法在android上打开xml文件

时间:2011-12-07 19:57:27

标签: android xml resources jdom

我正在开发一个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());

但它返回null和

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

我得到了同样的错误。你有什么想法吗? 在此先感谢!!

3 个答案:

答案 0 :(得分:2)

我相信您需要在文件构造函数中使用指向data.xml文件的URI。

尝试这样的事情:

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 :(得分:1)

如果这是您应用程序内的资源,那么您应该使用Resources方法,例如getXml()。您可以从Context对象

获取rources类的实例

答案 2 :(得分:0)

InputStream is = context.getResources().openRawResource(R.raw.data);

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

document = builder.build(br);

请务必将data.xml放在res / raw-folder中。