Debugging Umbraco-未拾取所有媒体时显示节点

Debugging Umbraco-未拾取所有媒体时显示节点,debugging,xslt,umbraco,nodes,predicate,Debugging,Xslt,Umbraco,Nodes,Predicate,我的目的是创建一个新闻列表,并在一些新闻后面附加一个缩略图。问题是,如果我只在一些节点中选择媒体,就会出现xslt错误,并且不会生成任何代码。如果我在所有节点中选择媒体,那么它会工作。。其目的是,无论是否存在图像,代码都将对节点进行重新编码。如果没有拾取图像,则不会显示该图像 我做错了什么 在本例中,当您在news\u Trimerage上调用的变量中没有任何内容时调用GetMedia将导致XSLT错误,因为如果未选择媒体节点,则无法获取媒体。您只需稍微重新调整代码即可使其正常工作。将分配媒体变

我的目的是创建一个新闻列表,并在一些新闻后面附加一个缩略图。问题是,如果我只在一些节点中选择媒体,就会出现xslt错误,并且不会生成任何代码。如果我在所有节点中选择媒体,那么它会工作。。其目的是,无论是否存在图像,代码都将对节点进行重新编码。如果没有拾取图像,则不会显示该图像

我做错了什么


在本例中,当您在news\u Trimerage上调用的变量中没有任何内容时调用GetMedia将导致XSLT错误,因为如果未选择媒体节点,则无法获取媒体。您只需稍微重新调整代码即可使其正常工作。将分配媒体变量的代码行移动到if语句中,在该语句中检查news\u triamage元素是否存在。这样,只有在实际存在值时才会调用它


您可能还需要将if测试更改为:string-lengthnews\u-teaserimage>0,因为如果元素存在但为空,它可能会触发if。

将umbraco.library:GetMedianews\u-teaserimage,0调用从xsl:variable标记更改为xsl:if标记,并将xsl:if包装在li:


你能在你的问题中也包含准确的错误信息吗。对于Int32,它的值是否太大或太小。?将umbraco.library:GetMedianews\u Trimerage,0从xsl:variable标记移到xsl:if标记中,并将xsl:if环绕在li中的所有其余代码中
<ul>

<xsl:for-each select="umbraco.library:GetXmlNodeById($source)/* [@isDoc and string(umbracoNaviHide) != '1']">
<xsl:variable name="media" select="umbraco.library:GetMedia(news_teaserimage, 0)"/>

  <li>
    <h2><xsl:value-of select="@nodeName"/></h2>
    <h5><xsl:value-of select="@createDate"/></h5>

<xsl:if test="news_teaserimage">
<img src="{$media/umbracoFile}" width="70" height="70" style="float: left; padding-right: 10px; padding-bottom: 10px;" />
</xsl:if>

      <xsl:value-of select="news_shorttext" disable-output-escaping="yes"/>
    <xsl:if test="news_largetext">
      <br />
<a style="float: left; clear: both; margin-top: -10px;" href="{umbraco.library:NiceUrl(@id)}">
      Read more
    </a>

</xsl:if>


  </li>
</xsl:for-each>
</ul>
<ul>
<xsl:for-each select="umbraco.library:GetXmlNodeById($source)/* [@isDoc and string(umbracoNaviHide) != '1']">

  <li>
  <xsl:if test="umbraco.library:GetMedia(news_teaserimage, 0)">
    <h2><xsl:value-of select="@nodeName"/></h2>
    <h5><xsl:value-of select="@createDate"/></h5>

    <img src="{$media/umbracoFile}" width="70" height="70" style="float: left; padding-right: 10px; padding-bottom: 10px;" />

    <xsl:value-of select="news_shorttext" disable-output-escaping="yes"/>

    <xsl:if test="news_largetext">
      <br />
      <a style="float: left; clear: both; margin-top: -10px;" href="{umbraco.library:NiceUrl(@id)}">
      Read more
      </a>
  </xsl:if>
  </li>
</xsl:for-each>
</ul>