SOAPを使用してWebサービスから受け取った次の文字列を解析しようとしています。Webサービスから受け取ったデータを解析できないため(理由はわかりません。XMLの解析についてはこちらをご覧ください)。 Soap Webサービスを使用)データをNSStringに変換してから、TOUCHXMLを使用して文字列を解析しています
NSString *theXML = [[NSString alloc]
initWithBytes: [webData mutableBytes]
length:[webData length]
encoding:NSUTF8StringEncoding];
私が得る文字列は
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetCategoryResponse xmlns="http://tempuri.org/">
<GetCategoryResult>
<Root>
<Record>
<catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo>
</Record>
</Root>
</GetCategoryResult>
</GetCategoryResponse>
</s:Body>
</s:Envelope>
Webサービスから取得したNSDataを読み取るためのパーサーを取得できないため、上記の文字列を次の文字列に変換します(つまり、必要な正確なxml)
<Root><Record><catid>1</catid><catname>Hi</catname><catlogo>http://10.25.4.49/monsoonstore/Category/50X50.GIF</catlogo></Record></Root>
CXMLDocument *doc = [[CXMLDocument alloc] initWithXMLString:check options:0 error:nil];
NSArray *items = [doc nodesForXPath:@"//Root" error:nil];
for (CXMLElement *item in items)
{
NSLog(@"Root");
NSArray *titles = [item elementsForName:@"Record"];
for(CXMLElement *title in titles)
{
NSLog(@"Record");
break;
}
NSArray *categories = [item elementsForName:@"catid"];
for(CXMLElement *category in categories)
{
NSLog(@"catid");
break;
}
NSArray *artists = [item elementsForName:@"catname"];
for(CXMLElement *artist in artists)
{
NSLog(@"catname");
break;
}
.
.
.
.
ルートログとレコードログが呼び出されますが、catidは呼び出されません。何が間違っている可能性がありますか?