我现在非常非常新手,但是我已经使用xsl格式化xml feed以输出到我的网站的html中。但是,我还想进一步将一些输出文本转换为html链接。
是否有任何可用的教程可以提供帮助?
为了给出更好的上下文,输出是一个足球联赛表,我想让球队名称自动链接到一个网址。所以,如果名字='朴茨茅斯',那么我希望朴茨茅斯成为我决定的链接。如何格式化下表以针对所有可能不同的团队名称执行此操作?
<xsl:for-each select="team">
<tr>
<td><xsl:value-of select="position"/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="played"/></td>
<td><xsl:value-of select="won"/></td>
<td><xsl:value-of select="drawn"/></td>
<td><xsl:value-of select="lost"/></td>
<td><xsl:value-of select="for"/></td>
<td><xsl:value-of select="against"/></td>
<td><xsl:value-of select="goalDifference"/></td>
<td><xsl:value-of select="points"/></td>
</tr>
`
答案 0 :(得分:0)
如果您想有条件地输出标签,可以执行以下操作。
<xsl:template match="/">
<xsl:apply-templates select="//team"/>
</xsl:template>
<xsl:template match="team">
<td>
<xsl:value-of select="position"/>
</td>
<td>
<xsl:choose>
<xsl:when test="name='Portsmouth'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('someurl.com?name=',name)"/>
</xsl:attribute>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:value-of select="played"/>
</td>
<td>
<xsl:value-of select="won"/>
</td>
<td>
<xsl:value-of select="drawn"/>
</td>
<td>
<xsl:value-of select="lost"/>
</td>
<td>
<xsl:value-of select="for"/>
</td>
<td>
<xsl:value-of select="against"/>
</td>
<td>
<xsl:value-of select="goalDifference"/>
</td>
<td>
<xsl:value-of select="points"/>
</td>
</xsl:template>
使用apply-templates而不是foreach循环。
如果其中一支球队是朴茨茅斯,那么输出就是
<td><a href="someurl.com?name=Portsmouth"/></td>
如果您希望每个团队都有一个网址,那么只需删除选择语句并离开
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('someurl.com?name=',name)"/>
</xsl:attribute>
</a>
</td>