Проблема с Xpath в iPhone - PullRequest
       21

Проблема с Xpath в iPhone

0 голосов
/ 30 июля 2011

В GdataXML я могу использовать только узлы для Xpath из корня XML, но я хочу, чтобы как только у меня был inferenceMembers, я хотел бы применить Xpath к остальной части этого узла, но не ко всему дереву DOM, возможно ли это?

Пример ниже работает неправильно в цикле for, приносит все переменные в DOM, но я хочу работать только с variableElement, а не с целым DOM, если у меня есть variableElement.

NSArray *inferenceMembers = [doc nodesForXPath:@"//inferenceresponse/state/variable[not(valuedefinition/variablevalue)]" error:nil];

for (GDataXMLElement *variableElement in inferenceMembers) {
 Variable *variable=[[Variable alloc] init];
 NSArray *items = [variableElement nodesForXPath:@"//variable/domaindefinition/domain/enumType/domainitem" error:nil];          
}

Причина, по которой я этого хочу, не в том, что это трудно сделать, но я думаю, что было бы медленнее, если бы я выполнял xpath-запрос ко всему XML, чтобы каждый раз достигать потомков одного и того же элемента. Я читал, что я могу творить чудеса с пространствами имен и NSDictionary, но не знаю, как это сделать

1 Ответ

1 голос
/ 30 июля 2011

Попробуйте это:

NSArray *inferenceMembers = [doc nodesForXPath:@"//inferenceresponse/state/variable[not(valuedefinition/variablevalue)]" error:nil];

for (GDataXMLElement *variableElement in inferenceMembers) {
 Variable *variable=[[Variable alloc] init];
 NSArray *items = [variableElement nodesForXPath:@"domaindefinition/domain/enumType/domainitem" error:nil];          
}

Было бы полезно увидеть структуру XML, чтобы иметь возможность полностью помочь.

...