1

我有一个页面,里面有一个文件夹和链接

-FirstPage
  +folder
  -page
  -page
  -folder
    -link1
    -link2
    -link3
  -page

我想到达树中的链接 1、链接 2、链接 3。我当前的页面是FirstPage。我怎么做??这是我写的 xsl,他给了我顶部文件夹中的第一个链接

<xsl:template match="/">
<xsl:for-each select="$currentPage/descendant-or-self::* [@isDoc][@level=2]">
<xsl:if test="count(current()/descendant::* [@isDoc]) &gt; 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)来获取我想要的文件夹?谢谢你的帮助...

4

1 回答 1

0

Umbraco WikiBook 在线 ( http://en.wikibooks.org/wiki/Umbraco/Various_useful_XSLT_methods_in_Umbraco )中有很多有用的提示和技巧。您可以使用文件夹节点的 doc 类型来查找链接(而不是 id)。

例如循环某个文档类型(linkFolderDocType)的所有节点:

<xsl:for-each select="$currentPage/ancestor-or-self::root//node [@nodeTypeAlias='linkFolderDocType']">
  <xsl:value-of select="./text">
</xsl:for-each>
于 2013-05-22T08:16:06.700 回答