2011-07-30 61 views
0

在GdataXML中,我只能使用來自XML根節點的Xpath節點,但我希望一旦有了inferenceMembers,我想將Xpath應用於此節點的其餘部分,但不是整個DOM樹,是否可能?iPhone中的Xpath問題

下面的例子工作在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

試試這個:

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結構很有用,能夠充分幫助。

+0

tnx工作,但我不得不開始domaindefinition不可變 – Spring