0

しばらくこれをいじっています...次の行を含むxmlファイルがあります

<image size="small">image_small.jpg</image>
<image size="medium">image_medium.jpg</image>
<image size="large">image_large.jpg</image>

たとえば、メディアのURLを取得する方法についてのアイデア。

現在私は持っています...しかし、それはうまくいきません

<tr>
<td><img><xsl:attribute name="src">
          <xsl:value-of select="image/@size[@size=medium]" />
         </xsl:attribute>
    </img>
</td>
</tr>

前もって感謝します

4

1 に答える 1

3

XSLT全体も目的の出力もないため、質問はあまり明確ではありませんが、試してみます。

for ループを使用してさまざまな画像を反復処理する場合は、ループの内容ではなく、ループ自体に制約を設定する必要があります。

サンプル コードを a 内に配置するxsl:for-eachと、すべての画像が反復処理されますが、 withが現在のノードである@src場合にのみ属性が塗りつぶされます。これにより、3 つの画像を含む 3 つのテーブル行が得られますが、有効な属性を持つ画像は 1 つだけです。image@size="medium"@src

代わりにxsl:for-eachまたは使用xsl:apply-templates)を変更して、次の画像のみを反復処理します@size="medium"

<!-- This will only iterate over the medium sized images. -->
<xsl:for-each select="image[@size='medium']">
  <tr>
    <td>
      <img src="{.}"/>
    </td>
  </tr>
</xsl:for-each>

別のヒント:属性値テンプレートxsl:attributeを使用する代わりに。

于 2010-12-16T23:57:52.717 に答える