我需要说;我在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
答案 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>