我正在尝试使用GetMedia mediapicker将图片检索到图像。
以下代码可以正常使用:
<xsl:for-each select="umbraco.library:GetXmlNodeById(1123)/* [@isDoc]">
<article>
<img width="1822" height="600">
<xsl:attribute name="src">
<xsl:value-of select="umbraco.library:GetMedia(1139, 0)/umbracoFile" />
</xsl:attribute>
</img>
<div class="contents">
<h1>
<xsl:value-of select="bannerHeading1"/>
</h1>
</div>
</article>
</xsl:for-each>
但是,如果我用这个替换关键字:
<xsl:value-of select="umbraco.library:GetMedia(bannerImage, 0)/umbracoFile" />
我得到一个解析错误,例外是 OverflowException (对于Int32,值太大或太小),这表明它不是传入的1139.
有没有办法可以传递我想要的财产? “bannerImage”的值是1139,我希望它是什么?
感谢您的帮助。
此外:这是GetXMLNodeById返回的XML结构:
<?xml version="1.0" encoding="utf-8" ?>
<HomepageBanner id="1141" parentID="1123" level="3" writerID="0" creatorID="0" nodeType="1124" template="1125" sortOrder="0" createDate="2013-08-12T15:53:48" updateDate="2013-08-12T15:54:18" nodeName="Members" urlName="members" writerName="admin" creatorName="admin" path="-1,1065,1123,1141" isDoc="">
<bannerImage>1139</bannerImage>
<bannerHeading1>Members Area</bannerHeading1>
<bannerHeading2>..the place for all your needs</bannerHeading2>
</HomepageBanner>
答案 0 :(得分:1)
对于其他任何试图从内容文件夹中的项目获取图像的人来说,这就是我开始工作的方式:
<xsl:for-each select="umbraco.library:GetXmlNodeById(1123)/* [@isDoc]">
<article>
<!-- Store the ID -->
<xsl:variable name="mediaId" select="bannerImage" />
<!-- Check the ID is numeric -->
<xsl:if test="number($mediaId) > 0">
<xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaId, false())" />
<xsl:if test="string-length($mediaNode/umbracoFile) > 0">
<img src="{$mediaNode/umbracoFile}" width="1822" height="600" />
<div class="contents">
<h1>
<xsl:value-of select="bannerHeading1"/>
</h1>
</div>
</xsl:if>
</xsl:if>
</article>
</xsl:for-each>
首先需要检查值是否为数字,然后,我失败的位,您需要将"/umbracoFile"
部分添加到媒体节点变量。
感谢帮助我朝着正确方向前进的贡献者。