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
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 回答
1

试试这个:

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

您为摘要文本返回的字符串可能需要修剪,但基本想法应该有效。

于 2012-07-28T00:47:45.537 回答