如何计算SOAP的元素名称?

时间:2013-06-06 14:20:23

标签: ios objective-c uilabel soapui

我向textfields输入了一些文字,以便在labels某些肥皂领域展示。输入 2 "将显示多少个电台" textfield

<stationName>ABC</stationName>
<stationName>XYZ</stationName>

我想在labels上显示这些输出。

我有2个标签。 Label1Label2

如果电台名称大于2 label1等于电台名称1 label2等于电台名称2

如何查看电台名称的计数并在2个标签上显示?

此代码仅显示标签上的一个电台。

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{

    if ( [elementName isEqualToString:@"stationName"] ) {
        if (!retornoSOAP) 
        {
            retornoSOAP = [[NSMutableString alloc] init];
        }
        teveRetorno = YES;
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if (teveRetorno) 
    {
        [retornoSOAP appendString:string];
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ( [elementName isEqualToString:@"stationName"] ) 
    {
        Label1.text = retornoSOAP;
        retornoSOAP = nil;
        teveRetorno = NO;

        NSLog(@"LOG Message = %@", retornoSOAP);
    }
}

1 个答案:

答案 0 :(得分:1)

你不保存演示结果吗?这可能是你可以用array.count来查找的。

另外,您可以通过计数器扩展parse:didStartElement方法

int numberOfStations = 0;

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{

    if ( [elementName isEqualToString:@"stationName"] ) 
    {
        numberOfStations++;

        if (!retornoSOAP) 
        {
            retornoSOAP = [[NSMutableString alloc] init];
        }
        teveRetorno = YES;
    }
}