一直在玩这个... 我有一个包含以下行的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>
提前致谢
答案 0 :(得分:3)
你的问题定义不明确,因为我们没有你的整个XSLT和所需的输出,但我会试一试:
如果您使用for循环迭代不同的图像,则需要在循环本身上设置约束,而不是循环的内容。
如果您将示例代码放在xsl:for-each
内,它将遍历每个图片,但只有当@src
image
为当前节点时才填充@size="medium"
属性。这将为您提供三个包含三个图像的表格行,但只有一个图像具有有效的@src
属性。
而是将xsl:for-each
(or 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。