0
Я новичок в xsl-преобразованиях и проблема с группировкой подстрок. У меня есть XML, как в следующем:Группировка подстрок с XSLT
<?xml version="1.0" encoding="UTF-8"?>
<document-root>
<classes>
<class1>CATSryverty</class1>
<class1>CATSt6vvy</class1>
<class1>CATS4yv6v</class1>
<class1>DOGSrybytb</class1>
<class1>DOGSbu6b</class1>
<class1>DOGS5u57756</class1>
</classes>
</document-root>
и этот XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<docs>
<xsl:for-each select="document-root/classes">
<xsl:element name="classesCSV">
<xsl:for-each select="class1/text()">
<xsl:value-of select="substring(., 1, 4)"/>
<xsl:if test="not(position() = last())">,</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</docs>
</xsl:template>
</xsl:stylesheet>
И это заставляет меня это:
<?xml version="1.0" encoding="UTF-8"?>
<docs>
<classesCSV>CATS,CATS,CATS,DOGS,DOGS,DOGS</classesCSV>
</docs>
Но то, что я хотел бы это:
<?xml version="1.0" encoding="UTF-8"?>
<docs>
<classesCSV>CATS,DOGS</classesCSV>
</docs>
Как его изменить?
Ну, помеченный это с Muenchian группировкой, но вы re n не делать. –
Я видел, как он упоминал о группировке и не понимал этого, но думал, что это может быть актуально здесь. Я не уверен, как совместить результаты подстроки с группировкой, чтобы получить нужный мне результат. – Oleg
Это очень актуально здесь. См. Http://www.jenitennison.com/xslt/grouping/muenchian.html –