1

我正在尝试使用 GetMedia mediapicker 检索图像的 url。

下面的代码工作正常:

<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" />

我收到一个解析错误,异常是溢出异常(对于 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>
4

1 回答 1

2

对于其他试图从内容文件夹中的项目获取图像的人,这就是我让它工作的方式:

<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) &gt; 0">
        <xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaId, false())" />
        <xsl:if test="string-length($mediaNode/umbracoFile) &gt; 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"部分添加到您的媒体节点变量中。

感谢那些帮助我朝着正确方向发展的贡献者。

于 2013-08-13T14:25:58.870 回答