1

在 umbraco 中是否有比这更直接的方法来基于 ID 列表迭代节点?

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

我只是好奇。从 currentPage 节点向上遍历树以在向下遍历之前找到根似乎是不合适的。

4

2 回答 2

0

您可以使用包含节点祖先 ID 的 csv 列表的 @path 属性。然后只需抓住第一个或任何一个感兴趣的。

另一种技术可能是使用@level 在树中特定深度的祖先中选择一个节点。

目前不在我的电脑前,当我在时会更新更多细节。

于 2009-06-12T21:41:59.607 回答
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() 函数(规范)。注意第二个参数可能是节点集类型。如果您的 $idList 是逗号分隔的字符串,您可能需要更改为节点集。

于 2009-06-13T16:53:47.840 回答