0

目前我还是个新手,但是我已经使用 xsl 来格式化一个 xml 提要,以便为我的网站输出到 html 中。但是,我想更进一步,将一些输出文本转换为 html 链接。

是否有任何可用的教程可以提供帮助?

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

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

`

4

1 回答 1

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>

使用应用模板而不是 foreach 循环。

如果其中一支球队是朴茨茅斯,输出将是

<td><a href="someurl.com?name=Portsmouth"/></td>

如果您希望每个团队都有一个 url,那么只需删除选择语句并离开

  <td>
           <a>
            <xsl:attribute name="href">
              <xsl:value-of select="concat('someurl.com?name=',name)"/>
            </xsl:attribute>
          </a>
    </td>
于 2012-08-03T20:17:13.130 回答