iPhone中的XML解析没有得到任何响应

时间:2012-09-25 07:20:06

标签: iphone xml-parsing nsxmlparser

我需要从WCF服务调用XML文件并解析iPhone中的XML内容。我能够调用服务URL但是在使用NSXMLParser进行解析时,我无法获得XML中的patricular属性值。我正在使用XCode中的ViewController应用程序。

我的XML文件是这样的:

<GetCompanyResponse xmlns="http://schemas.datacontract.org/2004/07/DomainModel" 
 xmlns:i="http://www.w3.org/2001/XMLSchema-    
 <CompanyList>
    <Company>
      <Id>b9ca2e32-ce88-4d72-99ce-9bc592511e85</Id>
    </Company>
 </CompanyList>




   NSString *urlString = [NSString stringWithFormat:@"http://192.168.0.107:8732/Design_Time_Addresses/IServices/

        AppointmentService/json/GetCompany";
        NSURL *jsonUrl =[NSURL URLWithString:urlString];
        NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:jsonUrl];
        [parser setDelegate:self];
        [parser setShouldProcessNamespaces:NO];
        [parser setShouldReportNamespacePrefixes:NO];
        [parser setShouldResolveExternalEntities:NO];

        [parser parse];
        [parser release];  

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

           if ([elementName isEqualToString:@"Company"]) {
            NSString *name=[attributeDict objectForKey:@"Id"];

        }
        }

但是当我检查'name'中的值时,它返回nil。我不知道出了什么问题。我应该改变什么?如何获取ID属性的值?

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

id不是名称的属性。将代码放在didEndElement中: 在.h;中定义strVal NSString

Inside found character:
{
   strVal=string;
}

Inside parserDidEndElement method:
     {

       if ([elementName isEqualToString:@"Id"]) {
        NSString *name=strVal;

    }
    }

这对你有用。