2010-12-28 2 views
0

私のクラスでxmlパースを行う必要があります。私のクラスで複数の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〜2回の構文解析を行うために必要で、どのように私は、これらのメソッドに

を使用して行うことができますいずれかのplsは私を助けることができます。

ありがとうございます。

答えて

1

このようなことをしたいですか?

どのようなタイプのフラグ変数もあります。フラグ変数がNSStringであると考えてみましょう。そして、2つのXMLファイルを解析します。 1つのXMLはリスト項目用であり、もう1つは詳細表示用です。その後

あなたは(私たちの場合は、リストのためのXML、)最初のXMLを解析する前に、あなたはフラグにこのようなものを設定し、

NSString *xmlContentFlag = @"List"; 

、2番目の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

関連する問題