0

1. XML応答でurl.INからXML解析を行っていますが、要素タグの長さを取得するにはどうすればよいですか..例:

<Company>
   <Id>1</Id>
   <name>A</name>
</Company>
<Company>
   <Id>2</Id>
   <name>B</name>
</Company>

これで、「会社」タグの数、つまり2を取得するにはどうすればよいですか

---> XML の解析時に配列に GUID 値を取得し、それを文字列変数に取り込んでいます。しかし、特定の値を文字列変数と比較すると、比較されません。私の配列は

(
{
Id="84a6c6f6-b018-4f0e-8da4-c64bf76be764"
}
)

今、私はこのように文字列変数でそれを取ります:

nam=[[arr objectAtIndex:0]objectForKey:@"Id"]; 

しかし、 arr の結果が ( { Id="00000000-0000-0000-0000-000000000000" } ) の場合

そして比較すると

if(nam=@"00000000-0000-0000-0000-000000000000")
{
   //do something

}

しかし、ここで私のカーソルはif stmnt if but Id is 00000000-0000-0000-0000-000000000000..どのように比較できますか?

4

3 に答える 3

2

[nam isEqualToString:@"00000000-0000-0000-0000-000000000000"]文字列を比較するために使用するだけです。

PS。等号のある文字列を比較できたとしても、が等号であるため、コード=は機能しません==。(したがって、この例では、文字列をnam変数に割り当てるだけです)


編集:(質問が2つあることに気づきました)

要素数については、デリゲートメソッド内で整数をインクリメントするかdidStartElement(他の人が言ったように)、NSMutableArrayそこにオブジェクトを追加します(たとえば、解析されたXMLからクラスインスタンスを取得するのが理にかなっていCompanyます。その後、次のmyCompanies.countようになります。会社の数。

于 2012-11-01T09:53:29.580 に答える
1

これが最初の質問の答えです。単純に整数変数を取り、それをゼロに初期化できます。NSXMLParser を使用している場合は、

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

関数 isEqualToString: を使用して「Company」という名前のタグが等しいかどうかを確認し、条件が満たされている場合はカウントを増やします。

解析の最後に、カウンターには「Company」タグの発生回数が表示されます

于 2012-11-01T10:18:50.920 に答える
1

解析中にタグの名前を指定すると、関数「didStartElement」で簡単に実行できます

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if([elementName isEqualToString:@"Company"])
        companyCount++;
}

それがあなたのために働くかどうか私に知らせてください

于 2012-11-01T10:20:50.763 に答える