【发布时间】:2014-03-12 09:55:41
【问题描述】:
我正在尝试理解 XSLT 中用于对节点进行分组的 MUENCHIAN METHOD 的含义。
但我无法理解所使用的某些语句的意义。
我提到了链接here,它试图解释这一点。
有这样的说法:
contact[generate-id() = generate-id(key('contacts-by-surname', surname)[1])]
在这我可以理解 generate-id() 给出了分配给正在遍历的当前节点的唯一 id。但无法理解访问第一个元素(即1)背后的原因。
为什么只有第一个?我知道 key 函数确实创建了一种关联数组的表示形式。
有人可以指导我吗?
【问题讨论】:
-
也许我在this answer 中对
<xsl:key>的解释对你有帮助(阅读下半部分,我会详细介绍)。 -
你已经提到的链接是 Muenchian 分组的规范解释,是我在任何地方看到的最清晰的描述之一。关键是您只需要使用每个键值处理一个节点,并且文档顺序中的第一个节点与任何节点一样好。您同样可以使用
[last()]而不是[1]来提取最后一个而不是第一个,这将为您提供相同的组,但不一定以相同的顺序。
标签: xml xslt xslt-1.0 grouping