2010-05-11 84 views
1

我有下面的XML:的XPath选择

<root> 
    <name>The name</name> 
    <long> 
    <path> 
     <value>Some Value</value> 
    </path> 
    </long> 
    <field>/root/name</field> 
    <field>/root/long/path/value</field> 
</root> 

,我想然而,在字段中选择标签这些路径,当我尝试以下方法:

<xsl:value-of select="/root/field[1]" /> 

所有我得到的是该字段的文本值。有没有从这些值中选择正确节点的方法?

回答

1

您需要某种形式的动态评估。我相信有一个非标准函数eval()(或在某些实现中为evaluate()),允许您使用动态xpath。

您正在使用哪种XPath处理器,以及XPath 1.0或2.0?

0

即使在XSLT 2.0中也不支持这种动态评估。

也许您正在使用的XSLT处理器支持EXSLT的dyn:evaluate()扩展功能?

0

如果你想包含“/根/节点”的节点,然后你的XPath是:

//*[.='/root/name']

这就是所谓的predicate,其中*任何节点匹配和.是当前节点。