0

私はWSDLファイルの解析にTouchXMLを使用していますが、私はそれに慣れていません。このようなNSStringがあります

NSString *str = @"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soap:Body><ns1:createSessionResponse xmlns:ns1=\"http://soap.user/\"><ns1:out>9E0B34E6DFF7BF89</ns1:out></ns1:createSessionResponse></soap:Body></soap:Envelope>";

「ns:out」で文字列9E0B34E6DFF7BF89を取得するにはどうすればよいですか

4

1 に答える 1

0

これを試して :

NSString *str = @"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soap:Body><ns1:createSessionResponse xmlns:ns1=\"http://soap.user/\"><ns1:out>9E0B34E6DFF7BF89</ns1:out></ns1:createSessionResponse></soap:Body></soap:Envelope>";
NSRange rr2 = [str rangeOfString:@"<ns1:out>"];
NSRange rr3 = [str rangeOfString:@"</ns1:out>"];
int lengt = rr3.location - rr2.location - rr2.length;
int location = rr2.location + rr2.length;
NSRange aa;
aa.location = location;
aa.length = lengt;
str = [str substringWithRange:aa];
NSLog(@"%@",str);  // 9E0B34E6DFF7BF89
于 2012-05-30T03:59:21.290 に答える