我有大量的诗句,我想将它们分组成诗节(见下面的例子)。我想每八节添加元素<lg>
。如何使用XSLT实现这一目标?
输入:
<text>
<body>
<l>Gozaba, juvenil, el trace Orfeo,</l>
<l>de libre edad, la primavera ociosa,</l>
<l>dando a sus años regalado empleo</l>
<l>la lira dulcemente numerosa.</l>
<l>No al vínculo legal del Himeneo</l>
<l>afectos cede, ni a la cipria diosa,</l>
<l>cual si anteviera el ánimo presago,</l>
<l>ya por su medio, el venidero estrago.</l>
<l>Ama su voz, que, en dulce melodía,</l>
<l>de otro amor le divierte y le enajena;</l>
<l>bien que la misma voz, con tiranía,</l>
<l>toda hermosura libre a amar condena.</l>
<l>Así que en unas armas poseía</l>
<l>propia defensa, con ofensa ajena,</l>
<l>siendo el sonoro canto, mientras pudo,</l>
<l>del Amor flecha, y a su flecha escudo.</l>
期望的输出:
<text>
<body>
<lg>
<l>Gozaba, juvenil, el trace Orfeo,</l>
<l>de libre edad, la primavera ociosa,</l>
<l>dando a sus años regalado empleo</l>
<l>la lira dulcemente numerosa.</l>
<l>No al vínculo legal del Himeneo</l>
<l>afectos cede, ni a la cipria diosa,</l>
<l>cual si anteviera el ánimo presago,</l>
<l>ya por su medio, el venidero estrago.</l>
</lg>
<lg>
<l>Ama su voz, que, en dulce melodía,</l>
<l>de otro amor le divierte y le enajena;</l>
<l>bien que la misma voz, con tiranía,</l>
<l>toda hermosura libre a amar condena.</l>
<l>Así que en unas armas poseía</l>
<l>propia defensa, con ofensa ajena,</l>
<l>siendo el sonoro canto, mientras pudo,</l>
<l>del Amor flecha, y a su flecha escudo.</l>
</lg>
谢谢!
答案 0 :(得分:0)
使用XSLT 2.0,您可以使用
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:param name="size" as="xs:integer" select="8"/>
<xsl:output indent="yes"/>
<xsl:template match="body">
<xsl:copy>
<xsl:for-each-group select="l" group-adjacent="(position() - 1) idiv $size">
<lg>
<xsl:copy-of select="current-group()"/>
</lg>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>