2011-03-27 51 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