2013-05-07 3 views
0

У меня было изменение бизнес-правила на одном из моих XSLT, и я не уверен, как его обрабатывать. Если вы посмотрите на XML ниже, вы увидите, что у меня есть раздел сотрудника и раздел оборудования. Раздел Employer имеет имя WorkOrderNumber, вложенное в тег дня и тег TimeDetail, и есть EquipmentWorkOrderNumber, вложенное в Equipment -> EquipmentWorkOrder.Получите отличные значения из двух разных частей XML, используя XSLT

Я использую только для того, чтобы получить отдельный номер WorkOrderNumber, потому что будет корреляция между WorkOrderNumber и EquipmentWorkOrderNumber, но теперь может быть дополнительный номер EquipmentWorkOrderNumber, который отсутствует в разделе WorkOrderNumber сотрудника.

Мне нужно получить отдельный номер WorkOrderNumber и EquipmentWorkOrderNumber без дублирования значений. Я пробовал много, много вариантов кода ниже без реального прогресса.

<!-- The Key at the top --> 
<xsl:key name="distinctWoEquipWo" match="//WorkOrderNumber | //EquipmentWorkOrderNumber" use="."/> 

<!-- Where I loop through the distinct values --> 
<xsl:for-each select=".//WorkOrderNumber | .//EquipmentWorkOrderNumber[generate-id() = generate-id(key('distinctWoEquipWo', .)[1])]"> 

Можно ли получить отчетливое WorkOrderNumber и значения EquipmentWorkOrderNumber в избранных?

Вот XML, с которым я работаю?

<?xml-stylesheet type="text/xsl" href="TemplateTest.xsl"?> 
<Timesheet> 
<WeekEnding>Apr 28, 2013</WeekEnding> 
<TeamMember> 
    <EmployeeNumber>AB00910</EmployeeNumber> 
    <EmployeeName>Demo, Derek</EmployeeName> 
    <EmployeeClass>F</EmployeeClass> 
    <Monday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>9</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Monday> 
    <Tuesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>12</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Tuesday> 
    <Wednesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>11</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Wednesday> 
    <Thursday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>8</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>3</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Thursday> 
    <Friday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>0</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>7</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Friday> 
    <Saturday /> 
    <Sunday /> 
    <CrewLeader>1</CrewLeader> 
</TeamMember> 
<TeamMember> 
    <EmployeeNumber>BB7789A</EmployeeNumber> 
    <EmployeeName>Employee, Daniel</EmployeeName> 
    <EmployeeClass>AL</EmployeeClass> 
    <Monday /> 
    <Tuesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>12</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>YES</PerDiem> 
      <Notes>5xfullperdiem</Notes> 
     </TimeDetail> 
    </Tuesday> 
    <Wednesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>11</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>YES</PerDiem> 
      <Notes>5xfullperdiem</Notes> 
     </TimeDetail> 
    </Wednesday> 
    <Thursday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>8</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>3</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>YES</PerDiem> 
      <Notes>5xfullperdiem</Notes> 
     </TimeDetail> 
    </Thursday> 
    <Friday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>Regular</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>7</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>YES</PerDiem> 
      <Notes>5xfullperdiem</Notes> 
     </TimeDetail> 
    </Friday> 
    <Saturday /> 
    <Sunday /> 
</TeamMember> 
<TeamMember> 
    <EmployeeNumber>CDE890</EmployeeNumber> 
    <EmployeeName>Test, John</EmployeeName> 
    <EmployeeClass>G</EmployeeClass> 
    <Monday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>9</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Monday> 
    <Tuesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>12</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Tuesday> 
    <Wednesday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>11</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>Over Time</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Wednesday> 
    <Thursday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>8</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>3</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Thursday> 
    <Friday> 
     <TimeDetail> 
      <StartTime>Start</StartTime> 
      <StopTime>Stop</StopTime> 
      <WorkOrderNumber>4812537</WorkOrderNumber> 
      <RegularHoursStartTime>Start</RegularHoursStartTime> 
      <RegularHoursStopTime>Stop</RegularHoursStopTime> 
      <RegularHoursStartTime2>Start</RegularHoursStartTime2> 
      <RegularHoursStopTime2>Stop</RegularHoursStopTime2> 
      <RegularHours>0</RegularHours> 
      <OverTimeStartTime>Start</OverTimeStartTime> 
      <OverTimeStopTime>Stop</OverTimeStopTime> 
      <OverTimeStartTime2>Start</OverTimeStartTime2> 
      <OverTimeStopTime2>Stop</OverTimeStopTime2> 
      <OverTimeHours>7</OverTimeHours> 
      <OtherStartTime>Start</OtherStartTime> 
      <OtherStopTime>Stop</OtherStopTime> 
      <OtherStartTime2>Start</OtherStartTime2> 
      <OtherStopTime2>Stop</OtherStopTime2> 
      <OtherHours>Other</OtherHours> 
      <PerDiem>NO</PerDiem> 
      <Notes>Notes</Notes> 
     </TimeDetail> 
    </Friday> 
    <Saturday /> 
    <Sunday /> 
</TeamMember> 
<Equipment> 
    <EquipmentWorkOrder> 
     <EquipmentWorkOrderNumber>4812537</EquipmentWorkOrderNumber> 
     <EquipmentDetail> 
      <EquipmentMileage>Mileage</EquipmentMileage> 
      <EquipmentHourMeter>Hour Meter</EquipmentHourMeter> 
      <EquipmentType>Bucket truck</EquipmentType> 
      <EquipmentNumber>8s96</EquipmentNumber> 
      <MondayHours>0</MondayHours> 
      <TuesdayHours>12</TuesdayHours> 
      <WednesdayHours>11</WednesdayHours> 
      <ThursdayHours>11</ThursdayHours> 
      <FridayHours>7</FridayHours> 
      <SaturdayHours>Saturday</SaturdayHours> 
      <SundayHours>Sunday</SundayHours> 
      <EquipmentNotes>Notes</EquipmentNotes> 
     </EquipmentDetail> 
     <EquipmentDetail> 
      <EquipmentMileage>Mileage</EquipmentMileage> 
      <EquipmentHourMeter>Hour Meter</EquipmentHourMeter> 
      <EquipmentType>Line truck</EquipmentType> 
      <EquipmentNumber>20x949</EquipmentNumber> 
      <MondayHours>9</MondayHours> 
      <TuesdayHours>12</TuesdayHours> 
      <WednesdayHours>11</WednesdayHours> 
      <ThursdayHours>11</ThursdayHours> 
      <FridayHours>7</FridayHours> 
      <SaturdayHours>Saturday</SaturdayHours> 
      <SundayHours>Sunday</SundayHours> 
      <EquipmentNotes>Notes</EquipmentNotes> 
     </EquipmentDetail> 
     <EquipmentDetail> 
      <EquipmentMileage>Mileage</EquipmentMileage> 
      <EquipmentHourMeter>Hour Meter</EquipmentHourMeter> 
      <EquipmentType>Pickup truck</EquipmentType> 
      <EquipmentNumber>38g356</EquipmentNumber> 
      <MondayHours>9</MondayHours> 
      <TuesdayHours>12</TuesdayHours> 
      <WednesdayHours>11</WednesdayHours> 
      <ThursdayHours>11</ThursdayHours> 
      <FridayHours>7</FridayHours> 
      <SaturdayHours>Saturday</SaturdayHours> 
      <SundayHours>Sunday</SundayHours> 
      <EquipmentNotes>Notes</EquipmentNotes> 
     </EquipmentDetail> 
     <EquipmentDetail> 
      <EquipmentMileage>Mileage</EquipmentMileage> 
      <EquipmentHourMeter>Hour Meter</EquipmentHourMeter> 
      <EquipmentType>Air compressor</EquipmentType> 
      <EquipmentNumber>1d158</EquipmentNumber> 
      <MondayHours>9</MondayHours> 
      <TuesdayHours>12</TuesdayHours> 
      <WednesdayHours>11</WednesdayHours> 
      <ThursdayHours>11</ThursdayHours> 
      <FridayHours>7</FridayHours> 
      <SaturdayHours>Saturday</SaturdayHours> 
      <SundayHours>Sunday</SundayHours> 
      <EquipmentNotes>Notes</EquipmentNotes> 
     </EquipmentDetail> 
    </EquipmentWorkOrder> 
</Equipment> 
</Timesheet> 

Спасибо за помощь.

+0

Не могли бы вы показать нам выход XML вы ожидаете получить? – ABach

+0

Выходной файл html и его много, но в цикле выше я пытаюсь напечатать заголовок с номерами рабочих порядков. <тд Объединение колонок =" 4" класс = "woNumsFill">   inosu812

+0

@ inosu812, похоже, сработает для меня (wiht xsltoroc) –

ответ

0

Проблема заключалась в том, что вам нужны скобки вокруг выбора узла для включения в ваш ключ, например, (//WorkOrderNumber | //EquipmentWorkOrderNumber)[generate-id.... В противном случае вы просто зацикливаете узлы WorkOrderNumber и включаете только EquipmentWorkOrderNumber в ключ и зацикливаете на них тоже.

Более полно ...

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
    <xsl:key name="workOrderNumberDistinct" match="WorkOrderNumber | EquipmentWorkOrderNumber" use="text()"/> 
    <xsl:template match="/"> 
    <DistinctWorkOrderNumbers> 
     <xsl:for-each select="(//WorkOrderNumber | //EquipmentWorkOrderNumber)[generate-id() = generate-id(key('workOrderNumberDistinct', text())[1])]"> 
     <Number> 
      <xsl:value-of select="."/> 
     </Number> 
     </xsl:for-each> 
    </DistinctWorkOrderNumbers> 
    </xsl:template> 
</xsl:stylesheet> 

выходов ...

<?xml version="1.0" encoding="UTF-8"?> 
<DistinctWorkOrderNumbers> 
    <Number>4812537</Number> 
</DistinctWorkOrderNumbers> 
+0

Если вы скопируете данные с понедельника по субботу, вы увидите, что он вводит номер заказа на работу два раза. Я увижу, могу ли я получить некоторые другие данные XML, чтобы продемонстрировать это. – inosu812

+0

Ah OK, я сам изменил входной XML и посмотрю, что вы имеете в виду. Моя трансформация выше все еще работает. Вам нужны скобки вокруг этого '(// WorkOrderNumber | // EquipmentWorkOrderNumber). – davmos

+0

Хорошо. Я также изменил приведенные выше данные XML, чтобы каждый мог получить более полное представление о том, о чем я говорю. – inosu812

Смежные вопросы