AndroidのストリームラインドXMLビルダー/パーサー?
質問
本から Android api
を学んでいますが、を扱うための
(およびの読み取り)。構文解析に対する彼の提案は stream-lined api
については何も言及していないようですraw xml XmlPullParser
であり、彼の例は、他のプラットフォーム( LINQ to XML
特に)。
これは Androidプラットフォーム
で利用可能な最良の手法ですか?
明らかに、反復的なものを避けるためにラッパーを作成できますが、そのようなものがまだ存在しない場合は驚かれることでしょう。
また、彼はコードでの xml構造
の作成についても言及していません。両方の私のオプションは何ですか?
補足として、 LINQ to XML in .Net
に精通している Java
開発者はJavaで同等のものを知っていますか?
解決
おそらく、かなりのサイズのDOMをAndroidのメモリにロードしたくないので、AndroidでXMLを処理する方法としては、プルパーサーとSAXパーサーをお勧めします。互換性がないか、肥大化している可能性のあるいくつかの汎用ライブラリーに依存するよりも、SAXの動作を理解し、カスタムハンドラーを記述することに投資する価値があると思います。私は常にSAXを使用してアプリ内のXMLを解析し、速度に非常に満足しています(ほとんどの場合)
他のヒント
さて、私はJavaにはかなり慣れていませんが、AndroidでのXML解析についてこれまでに収集したものは次のとおりです。
XmlPullParserアプローチは、リソースの制約のため、Androidに推奨されます。 AndroidにはDOMパーサーがあり、XPathを使用してxmlドキュメントをナビゲートできます。ただし、DOMを使用すると、ドキュメント全体を一度にメモリにロードする必要があります。 XmlPullParserメソッドは、使用メモリの点ではるかに効率的です。
XmlPullParserメソッドは、LINQ to XMLまたはXPathに慣れてから少し慣れますが、実際にはそれほど悪くはありません(少なくとも解析しているドキュメントでは)。小さなxmlドキュメントで作業している場合、XPathでDOMを使用できます。
AndroidでXMLを読み書きするためのさまざまな方法に関するまともな記事があります。 http://www.ibm.com/developerworks/opensource/ library / x-android / index.html
xmlまたはxhtmlの解析でも同じ問題が発生し、それを行うWebサービスを作成することになりました。
Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device
データをJSONで送信して、デバイス上で処理できます。 この利点は、低速のモバイルネットワーク上のトラフィックを最小限に抑え、新しいAndroidアプリをリリースせずに解析を変更できることです。
たぶんこれもあなたのために働くでしょう。
よろしく