2010-12-28 14 views
2

学校プロジェクト用にこのXMLファイルを解析しようとしています:http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/genre=20/xmlNSXMLParser、同じ要素の2つヘルプ!

私の問題は、ここにあるアルバム名を取得しようとしていることです:<im:collection><im:name>ここにあります。しかし、<im:name>という2つの要素があります。最初は<entry>にあり、2番目は<im:collection>です。

どのようにして2番目の<im:name>から情報を取得できますか?

+0

質問にタグ付きの要素が実際に表示されるように質問を編集してください。ここにはここにある:しかし、二つの要素がある。非常に有用ではありません。私はできれば質問を編集するだろうが、私はまだそれらの特権を持っていない。 –

+0

@Philip:編集済み。 –

+0

@エヴァン、ありがとう。私はここでコードの書式設定に慣れていない!それは私の最初のポストbtwです! –

答えて

4

タグが複数の親で複数回表示されるため、XMLを使用して常に問題に遭遇します。私がこれを追跡する方法は、親タグを追跡することです。

parentTag = currentTag; 
currentTag = elementName; 

そしてparser:foundCharacters:に私は、現在でよ親タグに応じて、私のデータモデルを移入:私はそれらを移入parser:didStartElement:namespaceURI:qualifiedName:attributes:

NSString *currentTag; 
NSString *parentTag; 

:だから、サブクラス化NSXMLParserに、私は2つの特性を維持します...

if ([currentTag isEqualToString:@"im:name"]) { 
    if ([parentTag isEqualToString:@"entry"]) { 
     // do something 
    } else if ([parentTag isEqualToString:@"im:collection"]) { 
     // do something else 
    } 
} 

味に塩を加える。

+0

あなたは大変ありがとうございます!本当にありがとう!! –

0

プルパーサー(DOMを参照するのではなくタグイベントを処理する)を使用するXML解析では、固有の要素が必要な場合にドキュメントのどこかを追跡する何らかの変数を設定する必要があります他のサブツリーの要素と同じ名前を持つXMLのサブツリー。

あなたの名前がコレクションの下にあることを知っているので、コレクションタグを探して入力して放置した時点を把握する必要があります。あなたがコレクションの中にいる場合。

関連する問題