Мне нужно локализовать значения внутри одинаковых братьев и сестер.Если они одинаковы, мне нужно их изменить.
Я думаю, что мне нужно каким-то образом использовать «следующий брат», «предыдущий брат» и «группировать».Первая группа - по значению, которое я ищу, чтобы получить те, которые одинаковы в позиции друг за другом.Затем с помощью родственных функций выясните, равны ли они.
Пример:
<programs>
<event>
<start>2018-11-25T13:55:00</start>
</event>
<event>
<start>2018-11-27T17:00:00</start>
</event>
<event>
<start>2018-11-25T13:55:00</start>
</event>
<event>
<start>2018-11-25T13:55:00</start>
</event>
</programs>
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="/">
<output>
<xsl:for-each select="/programs/event">
<xsl:variable name="starttime" select="./start"/>
<startOfProgram><xsl:value-of select="$starttime"/></startOfProgram>
</xsl:for-each>
</output>
</xsl:template>
</xsl:stylesheet>
Желаемые результаты:
<output>
<startOfProgram>2018-11-25T13:55:00</startOfProgram>
<startOfProgram>2018-11-25T13:56:00</startOfProgram>
<startOfProgram>2018-11-25T13:57:00</startOfProgram>
<startOfProgram>2018-11-27T17:00:00</startOfProgram>
</output>
Я знаю, что это длинный выстрел, так что если кто-нибудьмог бы указать мне правильное направление или помочь мне с одной частью проблемы, я был бы очень благодарен.
В образце, который я вынул, есть много других элементов, которые также переносятся на выход.Если это имеет значение, я могу включить их в список.
Пс.Обратите внимание, что это значение может легко составить 2018-11-25T18:30:00
, которое затем должно быть 2018-11-25T18:30:00
и последовательным 2018-11-25T18:31:00
, если их больше.