I have a XML that shows days and times windows an order can be serviced. If the timewindow[index=0]/Allowed/From and To is the same for different days than it needs to be displayed only once.
for example
Friday = from T08H00M0.000000S to T17H00M0.000000S Monday=T08H00M0.000000S to T17H00M0.000000S Tuesday=T08H00M0.000000S to T17H00M0.000000S Wednesday=T08H00M0.000000S to T17H00M0.000000S
Than the output needs to be
<FWActivityWindow EarliestTime="00:00" LatestTime="00:00" day='F,M,T,W'/>
This is the portion of the xml that I need to transform
`<WeekAgenda>
<Friday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P04DT00H00M0.000000S</From>
<To>P04DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Friday>
<Monday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P00DT08H00M0.000000S</From>
<To>P00DT16H30M0.000000S</To>
</Allowed>
<Preferred>
<From>P00DT08H00M0.000000S</From>
<To>P00DT16H30M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P00DT00H00M0.000000S</From>
<To>P00DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Monday>
<Saturday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P05DT00H00M0.000000S</From>
<To>P05DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Saturday>
<Sunday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P06DT00H00M0.000000S</From>
<To>P06DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Sunday>
<Thursday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P03DT08H00M0.000000S</From>
<To>P03DT16H30M0.000000S</To>
</Allowed>
<Preferred>
<From>P03DT08H00M0.000000S</From>
<To>P03DT16H30M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P03DT00H00M0.000000S</From>
<To>P03DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Thursday>
<Tuesday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P01DT08H00M0.000000S</From>
<To>P01DT16H30M0.000000S</To>
</Allowed>
<Preferred>
<From>P01DT08H00M0.000000S</From>
<To>P01DT16H30M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P01DT00H00M0.000000S</From>
<To>P01DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P01DT00H00M0.000000S</From>
<To>P01DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Tuesday>
<Wednesday>
<TimeWindowArray>
<TimeWindow index="0">
<Allowed>
<From>P02DT08H00M0.000000S</From>
<To>P02DT16H30M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT08H00M0.000000S</From>
<To>P02DT16H30M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="1">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="2">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="3">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
<TimeWindow index="4">
<Allowed>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Allowed>
<Preferred>
<From>P02DT00H00M0.000000S</From>
<To>P02DT00H00M0.000000S</To>
</Preferred>
</TimeWindow>
</TimeWindowArray>
</Wednesday>
</WeekAgenda>
`
<xsl:for-each select="WeekAgenda/child::node()[not((substring(substring- after(TimeWindowArray/TimeWindow[@index=0]/Allowed/From,'T'),1,2)= substring(substring-after(preceding-sibling::*/TimeWindowArray/TimeWindow[@index=0]/Allowed/From,'T'),1,2)))]">
<xsl:element name="FWActivityWindow" >
<xsl:attribute name="EarliestTime">
<xsl:value-of select="translate(substring(substring-after(TimeWindowArray/TimeWindow[@index=0]/Allowed/From,'T'),1,5),'HM','::')"/>
</xsl:attribute>
<xsl:attribute name="LatestTime">
<xsl:value-of select="translate(substring(substring-after(TimeWindowArray/TimeWindow[@index=0]/Allowed/To,'T'),1,5),'HM','::')"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
This is the output im getting
<FWActivityWindow EarliestTime="00:00" LatestTime="00:00"/>
<FWActivityWindow EarliestTime="08:00" LatestTime="16:30"/>
<FWActivityWindow EarliestTime="08:00" LatestTime="16:30"/>
<FWActivityWindow EarliestTime="08:00" LatestTime="16:30"/>
<FWActivityWindow EarliestTime="08:00" LatestTime="16:30"/>
Not sure why it is displaying all the days..it should check all the preceding-siblings of the context nodes and display only the two below
`<FWActivityWindow EarliestTime="00:00" LatestTime="00:00" />`
` <FWActivityWindow EarliestTime="08:00" LatestTime="16:30" />`
What am I doing wrong and any ideas on how to show the days="F,M,T,W" in the output?