こんにちは私は(データベーステーブル情報を持つ)ローカルXMLファイルを解析し、最終的にSQLite DBに情報を格納しようとしています。それは私がresの下で作成した生のフォルダに保存されています。AndroidローカルXMLを解析してSQLite DBに保存
しかし、それを開く方法とSAXパーサーを使用して解析する方法はわかりません。別のチュートリアルを見に行きましたが、うまくいきませんでした。
もし誰かが私の偉大な指導することができます。ありがとう
こんにちは私は(データベーステーブル情報を持つ)ローカルXMLファイルを解析し、最終的にSQLite DBに情報を格納しようとしています。それは私がresの下で作成した生のフォルダに保存されています。AndroidローカルXMLを解析してSQLite DBに保存
しかし、それを開く方法とSAXパーサーを使用して解析する方法はわかりません。別のチュートリアルを見に行きましたが、うまくいきませんでした。
もし誰かが私の偉大な指導することができます。ありがとう
openRawResource(getResources().openRawResource(R.id.{resourcename})
)を使用してInputStreamを取得できます。その後、通常のファイルの場合と同じように、そのInputStreamをSAXパーサに渡すことができます。
詳細については、http://stackoverflow.com/questions/4991839/android-parsing-large-files-using-sax-parserを参照してください。実際にはあなたが望むもののように見えます(サイズ制限についても説明します)と)。 – Femi
ああ...それは働いた。 openRawResource(getResources()。openRawResource(R.id. {resourcename}))。その入力ストリームをString ?????に変換する簡単な方法はありますか? – JibW
さて、http://stackoverflow.com/questions/309424/in-java-how-do-a-read-convert-an-inputstream-in-to-a-stringにいくつかのオプションがあります。 – Femi
私は次のようにバイト配列にした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オーバーライドは、要素を処理してデータベースに追加します。
解析しようとしているファイルはどこですか? –
これはrawと呼ばれるフォルダに格納されます。生のフォルダーは、私のEclipseのAndroidプロジェクトのresフォルダー内にあります – JibW
http://stackoverflow.com/questions/6079637/xmlpullparser-how-to-attain-res-raw-xml-xmlfilenameを参照してください。 – Femi
SAXパーサーを使用する必要があります。私はその効率的だと思います。ローカルxmlファイルを開き、SAXパーサーで解析する方法はありますか?その後、私はSQLite DBに情報を格納する必要があります。それは可能または他の簡単かつ効率的な方法があるだろうか??? – JibW