0

私は現時点では非常に初心者ですが、xsl を使用して xml フィードをフォーマットし、サイトの html に出力しました。ただし、出力テキストの一部を html リンクに変換することで、さらに一歩進めたいと思います。

役立つチュートリアルはありますか?

もう少し分かりやすくするために、出力はフットボール リーグ テーブルで、チーム名が自動的に URL にリンクされるようにしたいと考えています。したがって、name = 'Portsmouth' の場合、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 ループの代わりに apply-templates を使用します。

チームの 1 つがポーツマスの場合、出力は次のようになります。

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

各チームに URL を持たせたい場合は、choose ステートメントを削除して終了するだけです

  <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 に答える