2010-03-13 37 views
3

我試圖評估一個XPath可擴展的,我正在根據節點的位置動態構建。是否可以使用.NET 2.0 XSLT實現對XPath變量字符串進行動態評估?

我可以在一個變量中創建XPath字符串,但是當我選擇這個值時,只需要獲取字符串而不是我需要的節點集。

我使用以下來創建XPath查詢。

<xsl:variable name="xpathstring" 
       select="normalize-space(concat(&quot;//anAttribute[@key='pos&quot;,position(),&quot;']&quot;))"/> 

然後嘗試使用以下內容輸出值。

<xsl:value-of select="$xpathstring"/> 

如果我執行我調試XPath查詢我得到的節點集,但在我的XML輸出只能得到XPath字符串看起來像這樣//anAttribute[@key='pos1']

我看了一下exslt dyn:evaluate似乎啓用這個,但這似乎只支持某些處理器,並不提供獨立的實現或至少據我所見(目前使用標準的.NET 2.0 XSLT據我記得,這只是XSLT 1.0)。

有沒有辦法在不改變處理器的情況下處理這個問題?

回答

1

你爲什麼不使用PARAM代替串聯:

<xsl:param name="pos"> 
    <xsl:text>pos</xsl:text> 
    <xsl:value-of select="position()"/> 
</xsl:param> 
<xsl:value-of select="//anAttribute[@key=$pos]"/> 
+0

感謝工作正常。我正在撞牆,試圖直接從xpath字符串中工作,但這很好。 – Crocked 2010-03-13 14:45:19

+0

很高興有幫助。 – AxelEckenberger 2010-03-13 14:46:08

相關問題