无论当前页面如何,Umbraco XSLT都会选择newsitem子节点

时间:2010-07-21 18:24:39

标签: xslt umbraco

我需要说;我在xslt中很绿,所以,很可能,这是主要的问题;尽管如此,它已经持续了好几个小时而无法得到它。 我想在我的主模板上用最近的5个newsitems填充一列。无论当前页面如何,都应显示这些新站点。 我试过这个:

  <xsl:template match="/">
    <xsl:for-each select="umbraco.library:GetXmlNodeById(1075)/child::node">
        <p>
          <strong>
            <xsl:value-of select="header"/>
          </strong>
       </p>
    </xsl:for-each>
  </xsl:template>

目前,1075是我的新闻模板。我只是试过它:GetXmlNodeById(1076)/node(其中1076)是我的NewsItem模板。我已经尝试使用内容树中的node-Id,但没有运气..

有人能帮助我吗?我被卡住了,我在谷歌,论坛和文档上搜索得很高,但我很可能在这里缺少一些重要的东西。 TIA!

P.S。使用Umbraco 4.5 BTW

1 个答案:

答案 0 :(得分:2)

这应输出当前节点和子节点。

<xsl:copy-of select="umbraco.library:GetXmlNodeById(1075)"/>

在Umbraco 4.5中,架构发生了变化,从/ node [@ nodeTypeAlias ='News']改为/ News [@isDoc]

http://blog.leekelleher.com/2010/04/02/working-with-xslt-using-new-xml-schema-in-umbraco-4-1/

所以你的xslt应该看起来像

<xsl:template match="/">
    <ul>
        <xsl:for-each select="umbraco.library:GetXmlNodeById(1075)/News [@isDoc]">
            <li><a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="@nodeName"/></a></li>
       </xsl:for-each>
    </ul>
</xsl:template>