2011-07-11 4 views
0

こんにちは私は(データベーステーブル情報を持つ)ローカルXMLファイルを解析し、最終的にSQLite DBに情報を格納しようとしています。それは私がresの下で作成した生のフォルダに保存されています。AndroidローカルXMLを解析してSQLite DBに保存

しかし、それを開く方法とSAXパーサーを使用して解析する方法はわかりません。別のチュートリアルを見に行きましたが、うまくいきませんでした。

もし誰かが私の偉大な指導することができます。ありがとう

+0

http://stackoverflow.com/questions/6079637/xmlpullparser-how-to-attain-res-raw-xml-xmlfilenameを参照してください。 – Femi

+0

SAXパーサーを使用する必要があります。私はその効率的だと思います。ローカルxmlファイルを開き、SAXパーサーで解析する方法はありますか?その後、私はSQLite DBに情報を格納する必要があります。それは可能または他の簡単かつ効率的な方法があるだろうか??? – JibW

答えて

0

openRawResourcegetResources().openRawResource(R.id.{resourcename}))を使用してInputStreamを取得できます。その後、通常のファイルの場合と同じように、そのInputStreamをSAXパーサに渡すことができます。

+1

詳細については、http://stackoverflow.com/questions/4991839/android-parsing-large-files-using-sax-parserを参照してください。実際にはあなたが望むもののように見えます(サイズ制限についても説明します)と)。 – Femi

+0

ああ...それは働いた。 openRawResource(getResources()。openRawResource(R.id. {resourcename}))。その入力ストリームをString ?????に変換する簡単な方法はありますか? – JibW

+0

さて、http://stackoverflow.com/questions/309424/in-java-how-do-a-read-convert-an-inputstream-in-to-a-stringにいくつかのオプションがあります。 – Femi

0

私は次のようにバイト配列にしたXMLデータのためのAndroid上でXMLパーサを作成:

はたDefaultHandlerを拡張するクラスを作成します。

は、次のようにこのクラスのメソッドを作成します。

public void ParseXMLByteArray(byte[] xmlData, int len) 
{ 
    SAXParserFactory spf = SAXParserFactory.newInstance(); 
    try 
    { 
     // Create a SAX parser 
     SAXParser mySP = spf.newSAXParser(); 
     // Get an XML reader from the parser 
     XMLReader myXR = mySP.getXMLReader(); 
     // Tell the reader this class will supply content callbacks 
     myXR.setContentHandler(this); 
     // Kick off the parse operation 
     // You will get ContentHandler callbacks via DefaultHandler overrides 
     myXR.parse(new InputSource(new ByteArrayInputStream(xmlData, 0, len))); 
    } 
    catch (Exception excp) 
    { 
     // Handle exceptions 
    } 
} 

あなたはもちろん、入力ソースローカルファイルにしたいでしょう。 DefaultHandlerオーバーライドは、要素を処理してデータベースに追加します。

+0

解析しようとしているファイルはどこですか? –

+0

これはrawと呼ばれるフォルダに格納されます。生のフォルダーは、私のEclipseのAndroidプロジェクトのresフォルダー内にあります – JibW

関連する問題