获取XSL中的值,XML同名

时间:2010-12-16 23:35:46

标签: xml xslt nested-attributes

一直在玩这个... 我有一个包含以下行的xml文件

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

关于如何获得中型网址的任何想法。

目前我有......但它没有做到这一点

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

提前致谢

1 个答案:

答案 0 :(得分:3)

你的问题定义不明确,因为我们没有你的整个XSLT和所需的输出,但我会试一试:

如果您使用for循环迭代不同的图像,则需要在循环本身上设置约束,而不是循环的内容。

如果您将示例代码放在xsl:for-each内,它将遍历每个图片,但只有当@src image为当前节点时才填充@size="medium"属性。这将为您提供三个包含三个图像的表格行,但只有一个图像具有有效的@src属性。

而是将xsl:for-eachor use 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使用attribute value template