1

解析しようとしているドキュメント ディレクトリに XML ファイルがあります (テーブル ビューに表示するため)。

<tickets>
  <ticket>
    <tid>11111</tid>
    <status>Open</status>
    <summary>Summary 1</summary>  //want to grab this
    <notes>Notes 1</notes>
  </ticket>
  <ticket>
    <tid>11112</tid>
    <status>Open</status>
    <summary>Summary 2</summary>  //want to grab this
    <notes>Notes 2</notes>
  </ticket>

  ...

</tickets>

summaryテーブルビューで表示したいです。今のところ、すべての要約文字列で満たされた NSMutableArray を取得しようとしています。

私はXMLReaderすべての辞書を作成するために使用しています。次に、次のコードを使用して要約を取得しようとします。

NSData *data = [NSData dataWithContentsOfFile:save];
NSString *xml = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

// Parse the XML into a dictionary
NSError *parseError;
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:xml error:&parseError];

NSDictionary *ticketsArray = [xmlDictionary objectForKey:@"tickets"];
NSDictionary *ticketArray = [ticketsArray objectForKey:@"ticket"];;
//Now have a dictionary with ticket... what to do next?

次はどこに行けばいいのかわからない。すべての集計を NSMutableArray に入れる方法を知っていますか? XMLReaderそれが好ましい場合以外は、何かを使用できます。

4

2 に答える 2

1

これを試して:

for (NSDictionary *d in ticketArray) {
    NSDictionary *d2 = [d objectForKey:@"summary"];
    [summaries addObject:[d2 objectForKey:@"text"]];
}

要約テキストとして返される文字列はトリミングする必要があるかもしれませんが、基本的な考え方は機能するはずです。

于 2012-07-28T00:47:45.537 に答える
1
NSMutableArray *summaries = [NSMutableArray array];

for (NSString *key in [ticketArray allKeys])
{
    if ([key isEqualToString:@"summary"]) 
        [summaries addObject:[ticketArray objectForKey:key]];
}

警告: メモリから書かれ、テストされていません。また、あなたは ticketArray という辞書を持っています。これは私を少し混乱させましたが、私はそれが実際には辞書であると仮定しました。

于 2012-07-28T00:40:59.850 に答える