0

XPath を使用せずに NSXMLDocument を使用して、XML ドキュメントを解析し、それをカスタム オブジェクトに逆シリアル化してオブジェクト ツリー階層を作成する簡単な方法はありますか?

たとえば、以下に示す xml がある場合、詳細をレストラン オブジェクトとその中のコンテンツ オブジェクトに入れることは可能ですか?

<restaurants>
   <content>spanish name</content>
   <content>english name</content>
</restaurant>
<spa>
   <content>spa spanish name</content>
   <content>spa english name</content>
</spa>

上記の回答を使用して、iOSのkissxmlでプログラミングできるように拡張します。KissXML ドキュメントで、XML パーサーは NSXMLDocument と同じように動作することが言及されているので、NSXMLDocument を使用して質問しました。

4

1 に答える 1

1

予想されるコンテンツ構造がわかっている場合、最も簡単な方法は、それを使用NXMLParserしてループし、必要なビットを探して前のビットを追跡し、見つかったオブジェクトを構築することです。

ツリーベースのアプローチが必要な場合は、XQuery と XPath を学習することを検討してください。これらはそれほど悪いものではありません。それらがなければ、NSXMLDocument が実際に提供するのは Cocoa バインディングだけです。

結局のところ、何らかの方法でデータを変換する必要があります。

NSXMLDocument を使用すると、可能であれば XML DTD に対して検証を行い、適切なデータを確実に取得できます。

NSXMLParser を使用すると、正式な DTD がなくても処理できます。データのサイズと解析方法についてのみ心配する必要があります。次に、テスト データを使用して試行錯誤を行い、必要なものや必要なものを確実に取得できるようにします。

于 2012-10-05T08:47:44.500 に答える