NSXMLParserを使用して、このXMLを解析しています:http://itunes.apple.com/gb/rss/topsongs/limit=50/explicit=true/xml。私は "im:image"という要素を解析しようとしています。私の問題は、「im:image」という名前の3つの要素があることです。 2番目の「im:image」のデータのみを解析するにはどうしたらよいですか、またはそれぞれの配列をどのように配列に追加できますか?カスタムデリゲートのdidStartElement
方法でNSXMLParser 3つの同じ要素
答えて
、attributes
をチェックし、それが(「同じ」XML要素のそれぞれが異なるheight属性を持っている)60
にheight
セットを持っていることを確認してください。 attributes
はNSDictionary
で、属性の名前と属性の値の値のキーがあります。ここでは、あなたがそれを行うだろう大体方法の例です:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if ([[attributeDict objectForKey:@"height"] isEqualToString:@"60"]) {
NSLog(@"store");
}
}
これはおそらくそれを行うための最善の方法はありませんが、このような何かが私に起こったとき、私は単純にcounter
という名前NSInteger
を作成しました。その後didStartElement
に私はこれをしなかった。このため
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"yweather:forecast"])
{
int code = [[attributeDict objectForKey:@"code"] intValue];
if (counter == 0) {
}
if (counter == 1) {
conditionCode = code;
}
counter ++;
}
}
このアプローチの問題の1つは、生成されるXML文書に要素の順序が変更された場合(何らかの理由で)、異なる結果が生成されることです。通常、文書を自分で生成すると問題はありませんが、外部サービス(たとえば、iTunesデータなど)にアクセスするときにはリスクが発生します。 –
私はそれが最良のアプローチではないことに同意しますが、ねえ!できます。 :) –
- 1. NSXMLParser、同じ要素の2つヘルプ!
- 2. 同じIDを持つ要素のフェーディング
- 3. AngularJS:同じ要素
- 4. のJava:同じ要素
- 5. 要素が同じJavaファイル
- 6. 同じ要素を持つjQueryオーバーレイを開く/閉じる
- 7. 同じ名前の要素を解析しますか?
- 8. NSXMLParserは、名前空間を持つ要素
- 9. DataContract XMLのデシリアライズ - 同じ要素内の要素とプロパティのリスト
- 10. 配列要素の参照同じ配列の別の要素
- 11. CSSの問題:同じ要素を持つ複数のCSSは
- 12. Zendフォームの同じ行にある2つのテキスト要素
- 13. 同じウィンドウ内の3つのテーブル、iPad
- 14. 同じソース要素を持つ無関係な複数のグラフインスタンス?
- 15. .Net構成セクションの同じ要素を持つコレクション
- 16. のXmlSerializer - 異なる属性を持つ同じ要素
- 17. XMLスキーマ:親要素属性と子要素の同じ名前
- 18. 各配列要素の同じSQLクエリ
- 19. 私は、IFRAME内の同じ属性を持つ2つの要素をhavw同じid
- 20. Bootstrap 3の同じ要素のポップオーバーとツールチップ - ツールチップが起動しない
- 21. JAXBはXSDスキーマが同じ型を持つ2つの異なる要素が含まれている同じタイプの異なる要素のためのクラス
- 22. どのように3つの要素をjavascriptなしで同じ高さにするのですか?
- 23. 同じアプリケーションでAQXMLParserとNSXMLParserの両方を実行する
- 24. は同じレベルで、同じXML要素のための異なるテンプレートをレンダリング
- 25. 同じ要素のCSSファイル内の2つの要素セレクタはどのように処理されますか?
- 26. watir-webdriverの別の要素と同じ段落の要素を配置
- 27. JQuery:同じIDを持つcase要素の2番目の要素が存在する場合
- 28. 1つの要素を別の要素と同じ幅にすることは可能ですか?
- 29. jQueryで他の要素の中の他の要素と同じ要素を3番目に選択するにはどうすればよいですか?
- 30. MySQL - 別のテーブル内の同じテーブルの2つの要素をリンクします。
おかげで(私は私の場合には第二の要素を探していました)。しかし、どうすればそれを保管することができますか? – MKDev
好きなだけ保存してください。それを配列、セット、辞書に追加します。それはあなたがそれをどのように使用しているのか、それをどのように取得したいのかによって異なります。 –
ありがとう、私はそれが見つかった文字メソッドではないので、このイメージのURLを得ることができますか? – MKDev