2011-11-01 10 views
0

iOS 5用Xcode 4.2でiPadアプリを開発しています。xcode、iOS、XML文書の解析

場合によっては、アプリでWebサービスへの同期呼び出しを行う必要があります。したがって、結果を得るために解析する必要があるSOAP応答を同期的に取得します。

イベントドリブンXMLパーサーNSXMLParserは、同期結果を返す必要があるため使用できません。 iOSでNSXMLDocumentを使用できないことを考えれば、CallMethodResultと/ CallMethodResultタグのSOAPレスポンスを探しています。これらのタグ間のテキストは私が必要とする結果です。

しかし、その結果はTom & Jerryする必要がある場合は、XMLでの結果はTom & amp; Jerryです。私が素敵なXML文書パーサを使用することができれば、& amp;の変換を処理します。結果の文字列を修正するために検索と置換を行うことはできますが、私はを再作成する必要はありません。

私の結果には、XMLパーサーによって修正されるXML非対応文字がいくつでも含まれる可能性があるため、変換コードがかなり長くなる可能性があります。

イベントドリブンルートを使用せずにXMLからノード情報を抽出する最も良い方法は何ですか?

答えて

4

私は「同期」とは

同期結果を返す必要があるため、私はあなたが同期意味ですか、イベント駆動型のXMLパーサNSXMLParserを使用することはできませんか?

この場合でも、NSXMLParserを使用できます。イベント駆動型であるにもかかわらず、同期型です。 - (BOOL)parseメソッドは、解析が完了するまで戻りません。

+1

イベント駆動型であるため、それ自身のスレッド上で実行されるため、パーサdidEndElementメソッドでその答えが得られることを前提にしていたはずです。あなたの助言に非常に感謝します。 –

+0

私はXMLの構文解析が同期しているとは知らなかった。それはメインスレッドで実行しているときUIをブロックしますか? –

+0

うん、それはブロックする。スローダウンが目立つように大きな文書を解析する場合は、UIをブロックしないためにバックグラウンドスレッドで実行できます。 –