在我的xslt中,我正在尝试确定schedule_id
中不同<event/>
值的数量,以便我可以输出一个表,其中每列用于一个schedule_id
。以下密钥应检索按我的要求分组的节点集。那么如何确定返回多少个节点集?
<xsl:key name="events-by-schedule" match="event" use="@schedule_id" />
3 的示例事件(我正在尝试计算的数字)不同的schedule_id
s:
<event event_id="6" date="2009-05-27" schedule_id="4">
<ev_title>Ed's Bday</ev_title>
</event>
<event event_id="4" date="2009-11-11" schedule_id="0">
<ev_title>Remembrance Day</ev_title>
</event>
<event event_id="6" date="2009-08-17" schedule_id="23">
<ev_title>>Lunch with Bill</ev_title>
</event>
<event event_id="1" date="2009-12-25" schedule_id="0">
<ev_title>Christmas</ev_title>
</event>
<event event_id="6" date="2009-05-02" schedule_id="4">
<ev_title>Beth's Bday</ev_title>
</event>
<event event_id="6" date="2009-10-01" schedule_id="23">
<ev_title>Performance Review</ev_title>
</event>
答案 0 :(得分:3)
您正在寻找的XPath是:
count(
event[
generate-id()
=
generate-id(key('events-by-schedule', @schedule_id)[1])
]
)
基本上,这是Muenchian分组。
它计算在各自组中的第一个<event>
个节点 - 在XPath中,它是:它们的ID必须与组中第一个节点的ID匹配。