Я застрял в какой-то точке разлитого XSLT-файла.
Мой xml-это:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <nums> <num>02</num> <num>02</num> <num>03</num> <num>04</num> <num>05</num> <num>06</num> <num>06</num> <num>08</num> <num>09</num> <num>10</num> </nums>
Мой текущий вывод: разбивает xml независимо от значения узла.
<nums> <group> <num>02</num> <num>02</num> <num>03</num> </group> <group> <num>04</num> <num>05</num> <num>06</num> </group> <group> <num>07</num> <num>08</num> <num>09</num> </group> <group> <num>10</num> </group> </nums>
Мой ожидаемый выходной XML: сначала проверяет, есть ли какие-либо совпадающие узлы с последним узлом, если да, то включите их, иначе исключите.
<nums> <group> <num>02</num> <num>02</num> <num>03</num> </group> <group> <num>04</num> <num>05</num> <num>06</num> <num>06</num> </group> <group> <num>08</num> <num>09</num> <num>10</num> </group> </nums>
Что я уже пробовал:
Мой текущий XSLT-это:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:param name="pGroupSize" select="3"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="/*"> <nums> <xsl:apply-templates select= "num[position() mod $pGroupSize = 1]"/> </nums> </xsl:template> <xsl:template match="num"> <group> <xsl:copy-of select= ".|following-sibling::* [not(position() > $pGroupSize -1)]"/> </group> </xsl:template> </xsl:stylesheet>