2010-12-28 3 views
0

수업에서 xml 파싱을해야합니다. 내가 하나가 PLS 나를 도울 수 이러한 방법 내 수업에서 여러 xml 파싱을 수행하는 방법

을 사용하여 수행 할 수있는 방법

은 내가,
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName 
    attributes: (NSDictionary *)attributeDict 
{ 

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


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

} 

그러나 두 번 서로 후 구문 분석 할 필요를 발견했다.

미리 감사드립니다.

답변

1

당신이 뭔가를하고 싶니?

모든 유형의 플래그 변수를 지정하십시오. flag 변수가 NSString이라고 생각해 봅시다. 그리고 두 개의 XML 파일을 파싱 할 것입니다. 하나의 XML은 목록 항목 용이고 다른 XML은 세부 사항보기 용입니다.

당신은 당신이 두 번째 XML (세부 사항에 대한 XML)를 분석하기 전에, 다음,

NSString *xmlContentFlag = @"List"; 

을 같은 플래그 뭔가 설정을 (우리의 경우 목록에 대한 XML) 첫 번째 XML을 구문 분석하기 전에 다음을 수행,이 같은 플래그 뭔가 파서 방법에

NSString *xmlContentFlag = @"Detail"; 

을 설정

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

    if ([xmlContentFlag isEqualToString:@"List"]) { 

     // your code here 

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) { 

     // your code here 
    } 
} 

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

    if ([xmlContentFlag isEqualToString:@"List"]) { 

     // your code here 

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) { 

     // your code here 
    } 
} 

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

    if ([xmlContentFlag isEqualToString:@"List"]) { 

     // your code here 

    } else if ([xmlContentFlag isEqualToString:@"Detail"]) { 

     // your code here 
    } 
} 

참고 : NSString이 아닌 모든 유형의 플래그를 가질 수 있습니다.

기대하시는 바입니다.

+0

여기 xmlContentFlag는 무엇입니까 – MaheshBabu

+0

XML을 구별하는 것은 NSString 값입니다. 당신은 당신 자신의 방식으로 이것을 할 수 있습니다. – EmptyStack

+0

아니 그들은 단지 우리가 제공 한 이름입니다. 거기에 어떤 가치도 줄 수 있습니다. 지금 내 대답을 편집했습니다. – EmptyStack

관련 문제