0

WCF サービスから XML ファイルを呼び出し、iPhone で XML のコンテンツを解析する必要があります。サービス URL を呼び出すことはできますが、NSXMLParser を使用して解析するときに、XML の paticular 属性値を取得できませんでした。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"];

        }
        }

しかし、「名前」の値を確認すると、nil が返されます。何が悪いのかわからない。何を変更すればよいですか?ID 属性の値を取得するにはどうすればよいですか?

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

id は名前の属性ではありません。コードを didEndElement に入れます: .h で strVal NSString を定義します。

Inside found character:
{
   strVal=string;
}

Inside parserDidEndElement method:
     {

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

    }
    }

これはあなたのために働くでしょう。

于 2012-09-25T07:27:14.660 に答える