0

Web サービスから XML を取得しています。

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
  <Table>
    <CITY>Jupiter</CITY>
    <STATE>FL</STATE>
    <ZIP>33477</ZIP>
    <AREA_CODE>561</AREA_CODE>
    <TIME_ZONE>E</TIME_ZONE>
  </Table>
</NewDataSet>

この XML から CITY 値と STATE 値を取得する簡単でクリーンな方法が必要です。iOSでこれを行うための素晴らしく簡単な方法はありますか?

4

5 に答える 5

2

XMLファイルをNSDictionaryに変換するきちんとしたNSXMLParserラッパーがあります。

シンプルでクリーン!

http://troybrant.net/blog/2010/09/simple-xml-to-nsdictionary-converter/

次に、そこから、次を使用できます。

NSDictionary *dict = [self convertXML:xmlContents];
NSArray *tables = [dict objectForKey:@"NewDataSet"];

for (NSDictionary *table in tables) {

   NSLog(@"City = %@", [table objectForKey:@"city"]);

}
于 2012-07-25T11:10:17.487 に答える
1

NSXMLParser を使用して記述されたxmldocument パーサーを使用しますが、開発者が使用できるはるかに簡単な機能を備えています。

  1. SMXMLDocument.h および .m ファイルをプロジェクトに追加する
  2. クラス実装ファイル (.m ファイル) に #import を追加します。

    // create a new SMXMLDocument with the contents the xml file
    // data is the NSData representation of your XML
    SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];
    
    // Pull out the <NewDataSet> node
    SMXMLElement *dataset = [document.root childNamed:@"NewDataSet"];
    
    // Look through <Table> children
    for (SMXMLElement *table in [dataset childrenNamed:@"Table"]) {
        // demonstrate common cases of extracting XML data
        NSString *city = [table valueWithPath:@"CITY"]; // child node value
        NSString *state = [table valueWithPath:@"STATE"]; // child node value
    }
    

PS私はこのコードを実行していませんが、同様の使用法に基づいてケースに合わせて変更しました.

于 2012-07-25T11:49:23.620 に答える
0

見てください:NSXMLParser

と方法:(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI (NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

使い方はとても簡単です。`

于 2012-07-25T11:10:14.433 に答える
0

あなたはNSXMLParserを使うことができます、私は今私のマックにいないので大砲を再確認します、しかし基本的にあなたは戻ってくるデータでNSXMLParserをセットアップします。次に、パーサーへのデリゲートとしてクラスを設定します。パーサーが要素にヒットすると、ヒットした要素とその属性が通知されます。

Webサービスを制御できる場合は、XMLではなくJSONデータの使用を真剣に検討します。ObjCには非常に優れたJSONパーサーが付属しています。

于 2012-07-25T11:11:54.663 に答える
0

これを行うためのツールが失われています (リンク)。SAXこのデータを解析するだけでよいのでXML(たとえば)、この方法をお勧めしますNSXMLParser

于 2012-07-25T11:09:26.020 に答える