2009-10-19 52 views
0

在我的xslt中,我試圖確定我的<event/> s中不同的schedule_id值的數量,以便我可以輸出一個表,其中每列用於一個schedule_id。以下密鑰應檢索按需要分組的節點集。那麼如何確定返回多少個節點集?xslt count nodesets通過鍵返回

<xsl:key name="events-by-schedule" match="event" use="@schedule_id" /> 

與(數我試圖計算)不同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> 

回答

3

你正在尋找的XPath是:

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

基本上,這是Muenchian分組。

它統計所有<event>節點,這些節點在各自的組中都是第一個 - 以XPath術語來說,這是:它們的ID必須與組的第一個節點的ID匹配。

+0

謝謝!我正朝着那個方向走,但是無法把頭圍住。 – dnagirl 2009-10-19 18:42:14

+0

很高興幫助。 :-) – Tomalak 2009-10-19 18:45:59