2013-01-08 74 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; 
} 
相關問題