2011-12-07 21 views
3

私はxmlファイルをローカルリソースとして解析するアンドロイドアプリケーションで作業しています。私はそれを解析するためにjdomを使いますが、私は問題があります。私はファイルを開くことができず、理由はわかりません。エラーは次の行にあります。androidのxmlファイルを開くことができません

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)); 

メソッドクラスファイルには、タイプentree文字列が必要です。

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

が、それはnullを返し、

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

私は同じエラーを得た:私はこれを試してみました。アイデアはありますか? ありがとうございます!

答えて

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

これがアプリケーション内のリソースの場合は、getXml()などのResourcesメソッドを使用する必要があります。 Contextオブジェクトからrourcesクラスのインスタンスを取得できます

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

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

document = builder.build(br); 

は、RES /生-フォルダにdata.xmlファイルを置くようにしてください。

関連する問題