我已經找遍了所有周圍找到一個解決我的問題,但我得到了更多的問題......帶動態QName的XSLT調用模板?
考慮以下XML:
<dynamicStuff>
<dyn id="name1">...</dyn>
<dyn id="name2">...</dyn>
<dyn id="name3">...</dyn>
<dyn id="name4">...</dyn>
</dynamicStuff>
,並假設我有一個XSLT文件如下:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="name1">
...
</xsl:template>
<xsl:template name="name2">
...
</xsl:template>
<xsl:template name="name3">
...
</xsl:template>
<xsl:template name="name4">
...
</xsl:template>
</xsl:stylesheet>
我想要做的就是從第二XSLT文件動態確定的是這樣調用哪個模板:
<xsl:variable name="templateName">
<xsl:value-of select="dyn/@id"/>
</xsl:variable>
<xsl:call-template name="$templateName"/>
遺憾的是它不工作,相信我,當我說,我已經嘗試了很多不同的東西,雖然這聽起來太簡單了,沒有工作,要麼...
我缺少的東西?
編輯:
我已經成功地做到以下幾點:
<xsl:template name="staticName">
<xsl:param name="id" />
<xsl:if test="$id = 'name1'">....</xsl:if>
<xsl:if test="$id = 'name2'">....</xsl:if>
...
</xsl:template>
調用這種方式:
<xsl:call-template name="staticName">
<xsl:with-param name="id" select="@id"/>
</xsl:call-template>
不用說多麼不方便,這是...第我所有的代碼都會被綁定到那個staticName上(假設我需要在十幾個文件中完成這個調用)...第二步,我將有一堆(un)相關的cont當它可以更分開相同的模板內耳鼻喉科......一場噩夢升級系統UU
據我想要做什麼,但不是我需要的方式......
預先感謝任何光線在這個問題上!
可悲的是,我的可能事件數量並不小。儘管它是有限的。最大的問題是,它沒有分組到一個文件 – Fawix 2011-04-13 22:39:06
那麼問題是,我沒有一個固定的xml佈局,它可以發生在幾個不同的標籤(和幾個不同的xmls)只是與id來識別它,和我的XSLT是太泛泛,無法確定名稱..到目前爲止最好的是使用參數的解決方法。 – Fawix 2011-04-13 23:52:56