上來就頂
如果您確實需要兩個匹配相同元素的模板,則可以使用模式屬性
<xsl:template match="LATEST_TITLE" mode="date">
<!-- Code here to output the date -->
</xsl:template>
<xsl:template match="LATEST_TITLE" mode="title">
<!-- Code here to output the title -->
</xsl:template>
而且打電話給他們,你會做應用的模板
<xsl:apply-templates select="LATEST_TITLE" mode="date" />
<xsl:apply-templates select="LATEST_TITLE" mode="title" />
唯一的額外的工作,你真的需要做的就是添加一個XSL時指定所需要的模式:排序的第一應用模板,以按日期排序,然後將匹配模板更改爲僅輸出第一個位置中的元素。
試試這個XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="/*">
<xsl:apply-templates select="LATEST_TITLE" mode="date">
<xsl:sort select="LATEST_DATE" order="descending" />
</xsl:apply-templates>
<xsl:apply-templates select="LATEST_TITLE" mode="title" />
</xsl:template>
<xsl:template match="LATEST_TITLE" mode="date">
<xsl:if test="position() = 1">
<xsl:value-of select="LATEST_DATE" />
<xsl:value-of select="' '" />
</xsl:if>
</xsl:template>
<xsl:template match="LATEST_TITLE" mode="title">
<xsl:value-of select="TITLE" />
<xsl:value-of select="' '" />
</xsl:template>
</xsl:stylesheet>
如何使用與顯示的最近日期的模板多次? –
標題的順序是否重要?如果沒有,您可以按日期對記錄進行排序,並且只有在position()= 1時才輸出日期。 –
這絕對是您期望的輸出嗎?也就是說,您只想輸出最近的日期,然後按原始順序輸出標題文本?這是肯定的文本輸出,而不是XML? –