我有包含图像的子节点。如何选择并显示它们?我似乎只能选择并显示ID。我用过的代码:
<xsl:value-of select="image"/>
如何让它显示实际图像?我正在使用Umbraco 4.7。我确信这很简单,我似乎无法弄明白。
我也尝试过以下代码,但它似乎没有看到正确的节点。我认为它是在看父母,而不是孩子,但我不确定如何改变这一点:
<xsl:variable name="media" select="umbraco.library:GetMedia($currentPage/image, 0)" />
<xsl:if test="$media">
<img src="{$media/umbracoFile}" alt="{$media/altText}" />
</xsl:if>
答案 0 :(得分:0)
我有包含图像的子节点。我如何选择这些和 显示它们?我似乎只能选择并显示ID。 我用过的代码:
<xsl:value-of select="image"/>
因为您忘记发布XML文档(学会这样做!!!),这个问题无法肯定回答。
我的猜测是,如果您使用<xsl:copy-of>
代替<xsl:value-of>
前者复制select
属性中指定的整个节点(或节点集),而后者仅复制节点(节点集)的字符串值。
了解节点集的字符串值与节点集节点的副本之间的区别。
答案 1 :(得分:0)
使用node()
来吸引孩子:
<xsl:for-each select="$currentPage/node()/image">
<xsl:variable name="media" select="umbraco.library:GetMedia(., 0)" />
<xsl:if test="$media">
<img src="{$media/umbracoFile}" alt="{$media/altText}" />
</xsl:if>
</xsl:for-each>
答案 2 :(得分:0)
试试这个。
<xsl:variable name="imageId" select="./image" />
<xsl:if test="normalize-space($imageId)">
<xsl:variable name="image" select="umbraco.library:GetMedia($imageId, false())" />
<img src="{$image/umbracoFile}" rel="prettyPhoto" />
</xsl:if>
</a>
</xsl:if>