2012-07-28 3 views
1

구문 분석하려고하는 문서 디렉토리에 XML 파일이 있습니다 (테이블보기로 표시).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 이외의 것을 사용할 수 있습니다.

답변

1
NSMutableArray *summaries = [NSMutableArray array]; 

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

경고 : 메모리에서 작성되었으며 테스트되지 않았습니다. 또한, ticketArray라는 사전이 있는데, 조금 혼란 스럽지만 실제로는 사전이라고 가정했습니다. 당신이 당신의 요약 텍스트를 다시 얻을

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

문자열 트리밍해야 할 수도 있지만, 기본적인 아이디어는 작동합니다 :