Я хочу, чтобы сгруппировать следующий XML-файл:Как ссылаться на сгруппированные элементы в XSLT 2.0?
<record>
<word>Hallo</word><translit>XUPPY</translit><gloss>gloss1</gloss>
<word>Bye</word><translit>EHS</translit><gloss>gloss2</gloss>
<word>Yes</word><translit>KGR</translit><gloss>gloss3</gloss>
</record>
требуемый выход
<s>
<set><word>Hallo</word><gloss>gloss1</gloss></set>
<set><word>Bye</word><gloss>gloss2</gloss></set>
<set><word>Yes</word><gloss>gloss3</gloss></set>
</s>
Поэтому я использую for-each-group
, как в
<xsl:template match="record">
<xsl:element name="s">
<xsl:for-each-group select="*" group-starting-with="word">
<xsl:element name = "set">
<xsl:copy-of select="current-group()/word"/>
<xsl:copy-of select="current-group()/gloss"/>
</xsl:element>
</xsl:for-each-group>
</xsl:element>
</xsl:template>
Однако я получаю этот выход, т.е. , пустые группы:
<s><set/><set/><set/></s>
Так что я делаю что-то неправильно, ссылаясь на элементы в группах. Но что? Я уверен, что это должно быть что-то простое.
Да, это была точка. Благодаря! –