Я использую веб-сервис, использующий TouchXML, и не могу прочитать узлы в соответствии с руководством.Я получаю элемент CXMLDocument, однако мой вызов nodeForXPath всегда возвращает NULL.Что может быть не так?
Код синтаксического анализа XML
NSMutableArray *res = [[NSMutableArray alloc] init];
NSData* valueData=[value dataUsingEncoding:NSUTF8StringEncoding];
// Do something with the CXMLDocument* result
CXMLDocument *result = [[[CXMLDocument alloc] initWithData:valueData options:0 error:nil] autorelease];
NSArray *nodes = NULL;
nodes = [result nodesForXPath:@"//Outputs" error:nil];
NSLog (@"Nodes is %@\n", nodes);
for (CXMLElement *node in nodes) {
NSLog (@"Test");
NSMutableDictionary *item = [[NSMutableDictionary alloc] init];
int counter;
NSLog (@"Child Count is %@\n",[node childCount]);
NSLog (@"Child node is%@\n",[[node childAtIndex:0] stringValue]);
for(counter = 0; counter <= [node childCount]; counter++) {
// common procedure: dictionary with keys/values from XML node
[item setObject:[[node childAtIndex:counter] stringValue] forKey:[[node childAtIndex:counter] name]];
}
//[item setObject:[[node attributeForName:@"id"] stringValue] forKey:@"id"];
[res addObject:item];
[item release];
}
// and we print our results
NSLog(@"%@", res);
[res release];
}
XML:
<Nodes>
<Inputs>
<name>TestProgram</name>
</Inputs>
<Outputs>
<ReturnCode>0</ReturnCode>
<ReturnMessage>Success</ReturnMessage>
<NameDetails attr1="value1">Test Program</NameDetails>
<NameInstance attr1="value1">
<NameCharacteristics>
<Dob>04-25-2011</Dob>
</NameCharacteristics>
</NameInstance>
</Outputs>
</Nodes>
nodeForXPatch для // Выходы всегда возвращают NULL.Я хочу получить значение узла.Я попытался заменить Outputs на Dob и все еще получить пустой набор.