gpt4 book ai didi

iphone - Objective-c:Webservice,如何通过NSXMLParser解析后获取两个元素?

转载 作者:行者123 更新时间:2023-11-29 04:57:53 25 4
gpt4 key购买 nike

我使用下面的代码,它在解析后给出一个元素的字符串,而我想在第一个元素结果的基础上获取另一个元素的文本。

例如我从 ResponseType 获取 bool 值,现在根据该值我想获取另一个元素的(“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;
}
}

最佳答案

我调用了[xmlParser parse]两次。

qelementName = @"ResponseType";
[soapResults setString:@""];
[xmlParser parse];
ResponseType =[[NSString alloc] initWithFormat:@"%@", soapResults];

qelementName = @"TotalAmt";
[soapResults setString:@""];
[xmlParser parse];
TotalAmt = [[NSString alloc] initWithFormat:@"%@", soapResults];

并且它有效。

关于iphone - Objective-c:Webservice,如何通过NSXMLParser解析后获取两个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com