我有一個模板XSLT:請路徑模板/相對解析爲模板
<xsl:template name="template">
<xsl:param name="param"/>
</xsl:template>
我稱之爲使用
<xsl:call-template name="template">
<xsl:with-param name="param" select="."/>
</xsl:call-template>
這解決的內容。到一個字符串,並將它們傳遞給模板。
然而,它解決了。相對於模板調用。如果我更改模板中的上下文,如何才能使模板中的參數相對於新的上下文得到解決?
實施例添加作爲每個請求:
<xsl:template name="template">
<xsl:param name="param1"/>
<xsl:param name="param2"/>
<xsl:for-each select="$param1">
<xsl:value-of select="func:Lookup($param2)"/>
</xsl:for-each>
</xsl:template>
<xsl:call-template name="template">
<xsl:with-param name="param1" select="element"/>
<xsl:with-param name="param2" select="."/>
</xsl:call-template>
其中參數1和參數是相對的XPath。
我想要做的是將兩個相對xpaths傳遞給模板,然後解決它們。 <xsl:for-each select="$param1">
應解析爲某些元素,然後.
應解析爲相對於每個元素。 $ param2應該相對於$ param1解析。
但實際發生的事情都是相對於模板調用解決的。對於param1,這是可以的,但對於param2不適用。
如果不是for-each,我可以通過element/.
作爲param2。但是這不會因爲for-each而起作用。
在我看來,無論你想做什麼都可以做得更簡單。也許你可以添加一個你試圖實現的例子。 – Maestro13 2012-04-03 17:59:16
剛剛添加了一個例子。 – 2012-04-03 18:15:01
我已經考慮過字符串('。'),但它根本不能解析,即使在模板內部也是如此。 – 2012-04-03 18:16:48