Группировка списка дат по годам с использованием XSLT 1.0

#xslt-1.0

#xslt-1.0

Вопрос:

Не могли бы вы мне помочь? У меня есть XML:

 <root>
  <prop>
    <holidays>2011-01-01</holidays>
    <holidays>2011-01-02</holidays>
  ...
    <holidays>2012-01-01</holidays>
    <holidays>2012-01-02</holidays>
  ...
  </prop>
</root>
  

Мне нужно получить из него следующий JSON:

 [
{
"id" : "2011",
"data" : 
[
"2011-01-01","2011-01-02" ...
]
},
{
"id" : "2012",
"data" : 
[
"2012-01-01","2012-01-02" ...
]
},
...
]
  

С преобразованием XSLT 1.0

Заранее благодарим вас за помощь!

ОБНОВЛЕНИЕ: вот решение, которое мне подошло

 <?xml version="1.0"?>
<xsl:stylesheet version="1.0" exclude-result-prefixes="xsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="text"/>
<xsl:key name="group" match="prop/holidays" use="substring-before(string(.),'-')"/>
<xsl:template match="root">[
<xsl:apply-templates select="prop/holidays[generate-id(.) = generate-id(key('group',substring-before(string(.),'-')))]" />]</xsl:template>
<xsl:template match="holidays">{
"id" : "<xsl:value-of select="substring-before(string(.),'-')"/>",
"data" : 
[
<xsl:for-each select="key('group',substring-before(string(.),'-'))">"<xsl:value-of select="."/>",</xsl:for-each>
]
},
</xsl:template>
</xsl:stylesheet>   

    
  

Комментарии:

1. Я здесь новичок, извините, что не поздоровался)

2. Пожалуйста, задайте конкретный вопрос о трудностях, с которыми вы столкнулись при попытке выполнить это. В противном случае, похоже, что вы просто ищете кого-то, кто сделает вашу работу за вас.

3. Обратите внимание, что то, что вы показываете, не является допустимым JSON.