2012-08-03 50 views
0

我现在非常喜欢新手,但是我已经使用xsl来格式化xml feed,并将其放到我网站的html中。但是,我想进一步将一些输出文本转换为html链接。根据条件将xsl的输出转换为url

是否有任何教程可以帮助?

为了给出更好的上下文,输出结果是一个足球联赛表,我想让这些队名自动链接到一个url。所以如果名字='朴茨茅斯',那么我想让朴茨茅斯成为一个我会确定的链接。我如何格式化下表,为所有可能不同的团队名称执行此操作?

<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

如果我的回答帮助你出来了,请把它标记为答案。 – james31rock 2012-08-04 17:24:07

回答

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> 
+0

谢谢,现在做一个梦:-) – 2012-08-04 14:49:32

+0

如果它的作品投票矿作为答案请。 – james31rock 2012-08-04 17:18:02