Я использую приведенный ниже код, который дает мне строку одного элемента после анализа, в то время как я хочу получить текст другого элемента на основе результата первого элемента.
например, я получаю значение bool из ResponseType и теперь на основе этого значения я хочу получить значение другого элемента ("TotalAmt").и если ResponseType равен 0, то в коде появляется другое поле DeclineReason, а затем я хочу получить значение DeclineReason.
<AuthorizeResult>
<ResultCode>Success</ResultCode>
<RequestTime>2011-09-30T01:42:54.1834586-04:00</RequestTime>
<ResultObj>
<RequestId>55258</RequestId>
<ResponseType>1</ResponseType>
<UserType>Permanent</UserType>
<RequestDate>2011-09-30T05:42:54.481</RequestDate>
<TransactionId>0081315926057572</TransactionId>
<TransactionCode>001440</TransactionCode>
<TotalAmt>1</TotalAmt>
<UserId>47</UserId>
</ResultObj>
</AuthorizeResult>
Я кодирую это, но оно не работает и получаю только значение "ResponseType"
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict {
if ([elementName isEqualToString:@"ResponseType"])
{
if (!soapResults)
{
soapResults = [[NSMutableString alloc] init];
elementFound = YES;
}
}
}
//---when the text in an element is found---
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string {
if (elementFound)
{
[soapResults appendString: string];
}
}
//---when the end of element is found---
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"ResponseType"])
{ //---displays the country---
NSLog(@"%@", soapResults);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Response Type!" message:soapResults delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
[soapResults setString:@""];
elementFound = FALSE;
}
}