2013-01-08 76 views
0

这是我的XML代码:如何使用的NSXMLParser具有相同的名称解析器

<root><article> 
    <title>Test media</title> 
    <media> 
    <thumbnail>thumbnail1.png</thumbnail> 
    <full>full1.png</full> 
    <title>thumb1</title> 
    </media> 
    <media> 
    <thumbnail>thumbnail2.png</thumbnail> 
    <full>full2.png</full> 
    <title>thumb2</title> 
    </media> 
    <media> 
    <thumbnail>thumbnail3.png</thumbnail> 
    <full>full3.png</full> 
    <title>thumb3</title> 
    </media></article></root> 

我怎样才能获得媒体的节点和标题的所有信息(缩略图,完整,标题)。 谢谢!

回答

0

您可以使用NSXMLParser类的以下方法。当您获取标签的开始和结束时,您可以按照您需要的方式放置逻辑。

/---when the start of an element is found--- 
-(void) parser:(NSXMLParser *) parser 
didStartElement:(NSString *) elementName 
namespaceURI:(NSString *) namespaceURI 
qualifiedName:(NSString *) qName 
attributes:(NSDictionary *) attributeDict 
{ 
    if([elementName isEqualToString:@"media"]) 
    { 
     if (!soapResultsPortFolio) 
     { 
      soapResultsPortFolio = [[NSMutableString alloc] init]; 
     } 
     elementFoundPortFolio = TRUE; 
     NSLog(@"Registration...%@",soapResultsPortFolio); 
    } 
    else if([elementName isEqualToString:@"thumbnail"]) 
    { 
     elementFoundPortFolio = TRUE; 
    } 
    else if([elementName isEqualToString:@"full"]) 
    { 
     elementFoundPortFolio = TRUE; 
    } 
    else if([elementName isEqualToString:@"title"]) 
    { 
     elementFoundPortFolio = TRUE; 
    } 

} 


//---when the end of element is found--- 
-(void)parser:(NSXMLParser *)parser 
didEndElement:(NSString *)elementName 
namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName 
{ 
    if ([elementName isEqualToString:@"media"]) 
    {   
     NSLog(@"display the soap results%@",soapResultsPortFolio); 
    } 
    else if([elementName isEqualToString:@"thumbnail"]) 
    {   
     //Perform required action 
    } 
    else if([elementName isEqualToString:@"full"]) 
    { 
     //Perform required action 
    } 
    else if([elementName isEqualToString:@"title"]) 
    { 
     //Perform required action 
    } 

    [soapResultsPortFolio setString:@""]; 
    elementFoundPortFolio = FALSE; 
} 
相关问题