我有一个包含文件夹和链接的页面
-FirstPage
+folder
-page
-page
-folder
-link1
-link2
-link3
-page
我想要到达树中的link1,link2,link3。我当前的页面是第一页。 我怎么做?? 这是我写的xsl,他给了我顶部文件夹中的第一个链接
<xsl:template match="/">
<xsl:for-each select="$currentPage/descendant-or-self::* [@isDoc][@level=2]">
<xsl:if test="count(current()/descendant::* [@isDoc]) > 0">
<xsl:variable name="descendantPage" select="current()/descendant::* [@isDoc]"/>
<xsl:value-of select="$descendantPage/text"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
感谢您的帮助。
编辑:新的xsl我用...
<xsl:variable name="fId" select="number(1395)" />
<xsl:variable name="linksFolder" select="$currentPage/descendant-or-self::* [@isDoc][@level=2][@id='$fId']">
<xsl:template match="/">
<xsl:for-each select="$linksFolder/* [@isDoc]">
<xsl:value-of select="./text">
</xsl:for-each>
</xsl:template>
如何避免使用输出(如文件夹的ID)来获取我想要的文件夹? 谢谢你的帮助...
答案 0 :(得分:0)
有很多有用的提示&amp; Umbraco维基在线书籍(http://en.wikibooks.org/wiki/Umbraco/Various_useful_XSLT_methods_in_Umbraco)。您可以使用文件夹节点的doc类型来查找链接(而不是id)。
例如,循环某个doc类型的所有节点(linkFolderDocType):
<xsl:for-each select="$currentPage/ancestor-or-self::root//node [@nodeTypeAlias='linkFolderDocType']">
<xsl:value-of select="./text">
</xsl:for-each>