0
나는 WCF 서비스에서 XML 파일을 호출하고 아이폰에서 XML의 내용을 구문 분석 할 필요가
을받지 못했습니다. 서비스 URL을 호출 할 수 있지만 NSXMLParser를 사용하여 구문 분석 할 때 XML에서 patricular 특성 값을 가져올 수 없습니다. XCode에서 ViewController 응용 프로그램을 사용하고 있습니다.XML 구문 분석은 응답
내 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 속성의 값을 얻으려면 어떻게해야합니까?
도움을 주시면 감사하겠습니다. 미리 감사드립니다.
여전히 VXtreme은 ID에 대해 반환되는 nil 값을 다음과 같이 작성했습니다. 파서 didStartElement {if ([elementName isEqualToString : @ "Id"]) { NSString * name = [attributeDict objectForKey : @ "Id"]; } 파서 foundCharacters : { strVal = string; } 파서 didEndElement {if ([요소 이름 isEqualToString : @ "Id"]) { NSString * name = strVal;} 여전히 nil 값을 반환하고 있습니다 .. 제발 내가 잘못 가고 있다고 말해주십시오. – cutiepie
먼저 didStartElement 안에 아무 것도 쓰지 않아도됩니다. 두 번째로 .h 파일에 strVal을 정의 했습니까? 발견 된 문자 안의 로그를 확인하십시오. NSString * name = strVal 뒤의 print 값; 성명서를 받고 뭔가를 얻고 있니? –
예. strVal을 .h file.ok에 정의했습니다. didStartElement.Eventh에서 코드를 제거했습니다 .Entough를 얻을 수 없습니다. 콘솔 영역의 이름을 보려면 출력 영역을 checkin으로 보는 것이 좋습니다. 이름 설명 인쇄 : (gdb) – cutiepie