我在使用XSL時遇到了一些問題:當使用apply-templates打印子模板時,是否可以使用另一模板?我不想使用當前節點,但確實創建了一個與模板匹配的新元素。XSL在另一個模板中使用特定模板
的例子就是我尋找:
XML文件:
<root>
<toto name="foo">
<b>hello</b>
</toto>
</root>
XSL樣式表:
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="tata" name="tata">
<div class="tata">
<xsl:apply-templates />
</div>
</xsl:template>
<xsl:template match="toto" name="toto">
<tata>
<xsl:value-of select="@name" />
</tata>
<tata>
<xsl:apply-templates />
</tata>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
預期輸出:
<div class="tata">foo</div>
<div class="tata">
<b>hello</b>
</div>
但是,如何將節點內容傳遞給tata?如果我看到的是正確的,只能使用wsl:with-param,而我不知道如何使用它將節點傳遞給第二個模板的xsl:apply-templates。 – Arcanis 2010-10-29 07:50:42