質問

本から 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アプリをリリースせずに解析を変更できることです。

たぶんこれもあなたのために働くでしょう。

よろしく

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top