#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.