获取 XSL、XML 中相同名称的 value-of
玩这个有一段时间了... 我有一个 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>
提前致谢
Been toying with this for some time...
I have an xml file with the following lines
<image size="small">image_small.jpg</image>
<image size="medium">image_medium.jpg</image>
<image size="large">image_large.jpg</image>
ANy ideas on how I can just get the medium url for example.
currently I have... but its not doing the trick
<tr>
<td><img><xsl:attribute name="src">
<xsl:value-of select="image/@size[@size=medium]" />
</xsl:attribute>
</img>
</td>
</tr>
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的问题没有很好地定义,因为我们没有你的整个 XSLT 也没有所需的输出,但我会尝试一下:
如果你使用 for 循环来迭代不同的图像,你需要设置你的对循环本身的约束,而不是对循环内容的约束。
如果将示例代码放入
xsl:for-each
中,它将迭代每个图像,但仅在image
时填充@src
属性。其中@size="medium"
是当前节点。这将为您提供三个表行,其中包含三个图像,但只有一个图像具有有效的@src
属性。相反,更改您的
xsl:for-each
(或使用xsl:apply-templates
) 仅使用@size="medium"
迭代图像:另一个提示:而不是使用
xsl:attribute
使用 属性值模板。Your question isn't very well defined since we don't have your whole XSLT nor the desired output, but I'll give it a try:
If you are using a for-loop to iterate over the different images you need to set your constraints on the loop itself, not the content of the loop.
If you put your example code inside a
xsl:for-each
it will iterate over every image but only fill the@src
attribute when theimage
with@size="medium"
is the current node. That would give you three table rows with three images but only one image with a valid@src
attribute.Instead change your
xsl:for-each
(or usexsl:apply-templates
) to only iterate over your images with@size="medium"
:Another tip: instead of using
xsl:attribute
use an attribute value template.