2010-05-11 135 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,其中*任何節點匹配和.是當前節點。