1

内部にフォルダーとリンクを含むページがあります

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

ツリー内の link1、link2、link3 に到達したい。私の現在のページは 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 に答える