2011-03-27 63 views
3

我想使用XPath從XML文檔中的XML元素中選擇屬性。如何使用nodesForXPath選擇屬性(NSXMLDocument)

我的XML文檔是NSXMLDocument的一個實例。下面是XML文檔的一個例子:

<rootnode> 
    <mynode myattrib="getMe"></mynode> 
</rootnode> 

我的XPath是一樣的東西:

//[email protected] 

這應返回值 「getMe」(按:http://www.bit-101.com/xpath/)。

當我試圖做到這一點使用:

[xmlDoc nodesForXpath:@"//[email protected]" error:&error]; 

我得到的錯誤如下:

NSLog(@"%@",error); 

輸出:

XQueryError:3 - "invalid token (@) - //[email protected]" at line:1 

我應該改變得到這個工作?其他方式是否使用@符號?

回答

4

@前面添加一個斜線,如:

//mynode/@myattrib 
+0

我不熟悉使用XPath,就是儀表板和儀表板沒有區別?如果它在示例工具中起作用,那麼這是否意味着該工具無法正常工作? – Vamos 2011-03-27 20:15:30

+0

我對你使用的工具不熟悉,我只是在我的方便的「簡單的XML」參考中查找它。 :-)這裏的所有例子都用斜線分隔XPath查詢的每個軸。 – 2011-03-27 20:18:22

+3

@Rew - XPath表達式由一個或多個由斜槓分隔的位置步驟組成。每一步都會選擇與該表達式部分相匹配的一組節點。一旦你選擇了'mynode',你需要額外的一步來選擇它的一個屬性,這就是爲什麼斜槓是必須的。 – 2011-03-27 20:39:53