无法在安卓上打开XML文件。

3

我正在开发一个与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类的方法必须有一个类型为String的输入参数。我尝试了以下代码:

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

但是它返回了null

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

我遇到了同样的错误。你有任何想法吗? 提前感谢!
3个回答

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。它涉及到IT技术,可以帮助你更好地理解如何引用Android资源。

1
如果这是您应用程序内的资源,则应使用诸如getXml()之类的资源方法。您可以从Context对象获取rources类的实例。

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

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

document = builder.build(br);

请确保将 data.xml 文件放置在 res/raw 文件夹中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接