これよりもIDのリストに基づいてノードを反復するumbracoでより直接的な方法はありますか?
$currentPage/ancestor-or-self::root/descendant::node[contains($idList, @id)]
私はただ興味があります。currentPage ノードからツリーを上にたどってルートを見つけてから、下にたどるのは不自然に思えます。
関心のあるノードで 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 に変更することをお勧めします。
ノードの祖先 ID の csv リストを含む @path 属性を使用できます。次に、最初のもの、または興味のある方をつかみます。
もう 1 つの手法として、@level を使用して、ツリーの特定の深さで先祖のノードを選択することができます。
現時点ではコンピューターの前にいないため、詳細は更新されます。