2012-04-18 70 views
0

我正在使用xCode 4.3.2。在这个项目中,我已经读取了xml数据并将它放在uiTableView中,但是这里我只想列出输出数据(超过'4000')的价格。 我该如何设定条件? 你能帮我吗?xcode - 为UITableView过滤xml数据

我的XML:

<oembed> 
<Company><name>ABC</name><price>2000</price></Company> 
<Company><name>JP</name><price>4000</price></Company> 
<Company><name>VB</name><price>5000</price></Company> 
</oembed> 

ViewController.m

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict 
{ 

    if([elementName isEqualToString:@"oembed"]) 
    { 
     books = [[NSMutableArray alloc] init]; 
    } 
    else if([elementName isEqualToString:@"Company"]) 
    { 
     aBook = [[Book alloc] init]; 
    } 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 

    if(!currentElementValue) 
     currentElementValue = [[NSMutableString alloc] initWithString:string]; 
    else 
     [currentElementValue appendString:string]; 

} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { 

    if([elementName isEqualToString:@"oembed"]) 
     return; 

    if([elementName isEqualToString:@"Company"]) { 

     [books addObject:aBook]; 

     [aBook release]; 
     aBook = nil; 
    } 
    else 
     [aBook setValue:currentElementValue forKey:elementName]; 

    [currentElementValue release]; 
    currentElementValue = nil; 
} 

请帮助我。

+0

创建单元格时检查此情况。 – 2012-04-18 12:00:32

回答

1

在显示表格中的数据之前,尝试过滤您的books数组。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.price >= 4000"]; 
NSArray *filtered = [books filteredArrayUsingPredicate:predicate]; 

请注意,此代码假定你正在使用某种形式的字典的或具有一个名为price属性自定义对象。