1

これよりもIDのリストに基づいてノードを反復するumbracoでより直接的な方法はありますか?

$currentPage/ancestor-or-self::root/descendant::node[contains($idList, @id)]

私はただ興味があります。currentPage ノードからツリーを上にたどってルートを見つけてから、下にたどるのは不自然に思えます。

4

2 に答える 2

0

関心のあるノードで xsl:key を定義し、key() 関数を使用してそれらを取得する方が、おそらく効率的で簡単です。

<xsl:key name="node-ids" match="node" use="id"/>
<!-- put the "at" sign in front of "id",
  a blockquote is generated when I try it -->
<xsl:for-each select="$currentPage">
  <xsl:apply-templates select="key( 'node-by-id', $idList)"/>
</xsl:for-each>

参照: key() 関数 (仕様)。2 番目の引数が node-set 型である可能性があることに注意してください。$idList がカンマ区切りの文字列の場合は、node-set に変更することをお勧めします。

于 2009-06-13T16:53:47.840 に答える
0

ノードの祖先 ID の csv リストを含む @path 属性を使用できます。次に、最初のもの、または興味のある方をつかみます。

もう 1 つの手法として、@level を使用して、ツリーの特定の深さで先祖のノードを選択することができます。

現時点ではコンピューターの前にいないため、詳細は更新されます。

于 2009-06-12T21:41:59.607 に答える