2011-12-19 24 views
2

XMLファイルからデータを読み込み、そのデータをAndroidアプリの変数に割り当てたいとします。resフォルダからxmlファイルを読み込む方法

Androidで利用できるさまざまなXMLパーサーについていくつかの調査を行った後、私はSAXであると考えるのに最適なパーサーメソッドを見つけました。

AndroidからXMLを読むことについての記事を読んだことがありますが、「res」フォルダにローカルファイルを使用しているものは見つかりません。

私が見つけたすべてのチュートリアルは、XMLファイルをURL経由で読み込んでいます。

resフォルダからXMLをロードする方法はありますか?

ありがとう

+0

:余談として、あなたは非コンパイルされたリソースを解析したい場合は、あなたはおそらくSAX(スピード用)またはDOM(汎用性用)を使用するべきでしょう。 Androidのプルパーサーは、コンパイルされたXMLでうまく動作するように特別に調整されています。 – SkyeBoniwell

答えて

1

あなたが同じ問題に関する私の過去の質問を見てことができます: How to use DOM to read XML within Android applications correctly?

私の経験から、res/rawフォルダにxmlファイルをコピーして、そこに正しくを使用して読み取ることができました。 res/layoutフォルダから読み込むことができますが、解析するときに情報の一部がバイナリであると、理想的ではありません。

2

xmlを/ res/rawフォルダに入れます。 openRawResourceは、そのフォルダからのリソースだけを開くように見えます。 getResources()を試すこともできます。getXml(com.MYCLass.R.xml.programs); XMLパーサのインスタンスを返します。

+0

でもSAXパーサーを使用することはできますか?これに対して別のタイプのXMLパーサーを使用する必要がありますか?ありがとう – SkyeBoniwell

+0

http://jsoup.org/を使用することをお勧めします。私は多くのプロジェクトでこれを使用しています。 –

1

用途:

InputStream is=getResources().openRawResource(R.raw.my_xml); 

あなたのXMLへの入力ストリームを取得し、ファイルを解析するXMLPullParserを使用する:

XmlPullParser xpp=XmlPullParserFactory.newInstance().newPullParser(); 
xpp.setInput(is,"your-encoding"); 
0

生のフォルダでxmlファイルを使用することはできません。このエラーが発生したためです。 しかしuは簡単に資産フォルダに、このXMLファイルを配置し、それを使用することができます:私は多くのチュートリアルのいずれかでこれを読んで

is = getAssets().open("myFedd.xml") ;