我有這樣的.xml數據:如何在xslt的另一個模板中調用模板?
<Check>
<NotfoundUser>
<User>
<Forename>Jenny</Forename>
<Surname>Hollands</Surname>
<Birthday>30.01.1985</Birthday>
<Status>Employee</Status>
<City>Los Angeles</City>
</User>
<User>
<Forename>Michael</Forename>
<Surname>Williams</Surname>
<Birthday>30.12.1965</Birthday>
<Status>Retired</Status>
<City>New York</City>
</User>
</NotfoundUser>
</Check>
我想寫的.xsl數據做一個表。
<div class='div4'>
<table class='table4' style='font-size:12pt'>
<tr>
<th>Name</th>
<th>Birthday</th>
<th>Notice</th>
</tr>
<xsl:for-each select="/Check/NotfoundUser/*">
<tr>
<td><xsl:value-of select="./Forename"/> <xsl:text> </xsl:text> <xsl:value-of select="Surname"/></td>
<td><xsl:value-of select="./Birthday"/></td>
<td>
<xsl:call-template name="replacecity">
<xsl:with-param name="value" select="./City"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- template to replace -->
<xsl:template name="replacecity">
<xsl:param name="value"/>
<xsl:choose>
<xsl:when test="$value = 'New York'">
<xsl:text>Live in New York</xsl:text>
</xsl:when>
<xsl:when test="$value = 'Los Angeles'">
<xsl:text>Live in Los Angeles</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我需要在這個城市上面創建一個上標。
If Status = Retired -> superscript is 1
If Status = Employee -> superscript is 2
所以我想創建一個新的模板(例如所謂的replacestatus
)和整合內部模板replacecity
,但我不知道怎麼辦。你們能幫我解決這個問題嗎?還是你有更好的想法?
不能申報replacecity模板內replacestatus模板 - 所有模板必須是XSL的孩子:stylesheet元素;但使用replacecity模板中出現的xsl:call-template指令調用replacestatus模板沒有任何問題。 –