代码之家  ›  专栏  ›  技术社区  ›  riffnl

Umbraco XSLT选择新闻项子节点,而不考虑当前页

  •  0
  • riffnl  · 技术社区  · 15 年前

    我要说的是,我在XSLT中是相当环保的,所以,很可能这是主要的问题;尽管如此,我已经花了好几个小时的时间,但还是无法得到它。 我想在我的主模板上用5个最新的新闻项目填充一个列。无论当前页面如何,都应显示这些新闻项。 我试过了:

      <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)是我的新闻项目模板。我用内容树中的节点ID进行了尝试,但没有运气。

    有人能帮我吗?我在谷歌、论坛和文档上搜索了很多东西,但我很可能遗漏了一些重要的东西。蒂亚!

    P.S.使用Umbraco 4.5 BTW

    1 回复  |  直到 12 年前
        1
  •  2
  •   Elijah Glover    15 年前

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

    <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>
    
    推荐文章