XML ドキュメントのタグで個別の値を取得してカウントする必要があるプロジェクトがあります。XML を見ると、特に火曜日の WorkOrderNumbers の個別の数をカウントしようとしています。後で月曜日などにします。次のコードを試しました。
<xsl:variable name="tmp" select="count(//Tuesday/TimeDetail/WorkOrderNumber[generate-id() = generate-id(key('distinctWorkOrder', .)[1])])"></xsl:variable>
これは2を返します。私もこれを試しました
<xsl:variable name="tmp2" select="count(//Tuesday/TimeDetail/WorkOrderNumber[not(.=/preceding-sibling::WorkOrderNumber)])"></xsl:variable>
4 を返します。正解は 3 です。
以下に XML を追加しました。誰かが私が間違っていることを指摘できますか? どうもありがとう。
<Timesheet>
<WeekEnding>Sep 18, 2011</WeekEnding>
<JobNumber>00010-5523</JobNumber>
<Customer>Test Company INC</Customer>
<TeamMember>
<EmployeeNumber>10566</EmployeeNumber>
<EmployeeName>Employee, One</EmployeeName>
<EmployeeClass>Class</EmployeeClass>
<Monday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>8</RegularHours>
<OverTimeHours>3</OverTimeHours>
<OtherHours>4 - Holiday</OtherHours>
<Notes>I took the afternoon off.</Notes>
</TimeDetail>
</Monday>
<Tuesday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15101</WorkOrderNumber>
<RegularHours>2</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Tuesday>
<Wednesday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Wednesday>
<Thursday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Thursday>
<Friday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>2</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Friday>
<Saturday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Saturday>
<Sunday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>14963</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>1</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Sunday>
</TeamMember>
<TeamMember>
<EmployeeNumber>81135</EmployeeNumber>
<EmployeeName>Employee, Two</EmployeeName>
<EmployeeClass>Class</EmployeeClass>
<Monday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15100</WorkOrderNumber>
<RegularHours>5</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>1 - Company Meetings</OtherHours>
<Notes>These are my notes.</Notes>
</TimeDetail>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>22965</WorkOrderNumber>
<RegularHours>7</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>23570</WorkOrderNumber>
<RegularHours>Regular</RegularHours>
<OverTimeHours>1</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Monday>
<Tuesday></Tuesday>
<Wednesday></Wednesday>
<Thursday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>23591</WorkOrderNumber>
<RegularHours>7</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15100</WorkOrderNumber>
<RegularHours>1</RegularHours>
<OverTimeHours>1</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Test</Notes>
</TimeDetail>
</Thursday>
<Friday></Friday>
<Saturday></Saturday>
<Sunday></Sunday>
</TeamMember>
<TeamMember>
<EmployeeNumber>105779</EmployeeNumber>
<EmployeeName>Employee, Three</EmployeeName>
<EmployeeClass>W</EmployeeClass>
<Monday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>19583</WorkOrderNumber>
<RegularHours>8</RegularHours>
<OverTimeHours>Over Time</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Monday>
<Tuesday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15099</WorkOrderNumber>
<RegularHours>1</RegularHours>
<OverTimeHours>7</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Tuesday>
<Wednesday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15099</WorkOrderNumber>
<RegularHours>1</RegularHours>
<OverTimeHours>7</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Wednesday>
<Thursday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15099</WorkOrderNumber>
<RegularHours>1</RegularHours>
<OverTimeHours>7</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Thursday>
<Friday>
<TimeDetail>
<StartTime>Start</StartTime>
<StopTime>Stop</StopTime>
<WorkOrderNumber>15099</WorkOrderNumber>
<RegularHours>1</RegularHours>
<OverTimeHours>7</OverTimeHours>
<OtherHours>Other</OtherHours>
<Notes>Notes</Notes>
</TimeDetail>
</Friday>
<Saturday></Saturday>
<Sunday></Sunday>
</TeamMember>