2013-08-02 145 views
0

是否可以创建一个XPath查询,该查询将一个属性值存储到某个节点的某种变量中,然后在同一个查询中使用set变量的值进行匹配上。与两个节点上的属性值匹配的XPath查询

E.g.

特定的查询将是:

//div[@id='1' and @name='foo']/..//input[@type='text' and @id='foo'] 

一般情况是:

//div[@id='1' and [email protected]]/..//input[@type='text' and @id=$var] 

基本上我想用$ var当成被设置在一个节点和匹配的变量在另一个

+0

XPath的目标是在树结构中选择节点,你究竟要选择什么呢?所有'id'值的'input'标签都链接到'div'的'name'?如果你想做的不仅仅是选择节点,你可以考虑使用XPath,XQuery和XSLT的托管语言可能是很好的候选人。 –

回答

1

你可以在XPath 2中这样做:

//div[@id='1']/for $var in @name return ..//input[@type='text' and @id=$var] 

或者更好的XPath的3,也XQuery的:

//div[@id='1']/let $var := @name return ..//input[@type='text' and @id=$var] 
+0

完美的工作,谢谢 – niall

相关问题