在 umbraco 中是否有比这更直接的方法来基于 ID 列表迭代节点?
$currentPage/ancestor-or-self::root/descendant::node[contains($idList, @id)]
我只是好奇。从 currentPage 节点向上遍历树以在向下遍历之前找到根似乎是不合适的。
您可以使用包含节点祖先 ID 的 csv 列表的 @path 属性。然后只需抓住第一个或任何一个感兴趣的。
另一种技术可能是使用@level 在树中特定深度的祖先中选择一个节点。
目前不在我的电脑前,当我在时会更新更多细节。
在您感兴趣的节点上定义 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() 函数(规范)。注意第二个参数可能是节点集类型。如果您的 $idList 是逗号分隔的字符串,您可能需要更改为节点集。