XSLT计数节点集的返回键(xslt count nodesets returned by key)

2019-10-29 08:52发布

在我的XSLT,我试图确定不同的数量schedule_id在我的值<event/> S左右,我可以输出其中每列用于一个表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>

Answer 1:

你正在寻找的XPath是:

count(
  event[
    generate-id()
    = 
    generate-id(key('events-by-schedule', @schedule_id)[1])
  ]
)

基本上,这是Muenchian分组的。

它计数所有<event>节点是首先在它们各自的基团-在XPath中术语是这样的:它们的ID必须在该组的第一个节点的ID相匹配。



文章来源: xslt count nodesets returned by key
标签: xslt count key