Нужно преобразовать XML в строку
Входной XML:
<Texts>
<text>123</text>
<text>456</text>
<text>789</text>
</Texts>
Выходная строка
T1=123&T2=456&T3=789
Я использую следующий XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:for-each select="Texts">
<xsl:apply-templates mode="concat" select="text" />
</xsl:for-each>
</xsl:template>
<xsl:template match="text" mode="concat">
<xsl:variable name="position" select="position()"/>
<xsl:if test="position() = 1">
<xsl:text>P($position)=</xsl:text>
</xsl:if>
<xsl:value-of select="." />
<xsl:if test="position() = last()">
<xsl:text></xsl:text>
</xsl:if>
<xsl:if test="position() = last()">
<xsl:text>&P$position=</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Дайте мне знать, что не так. Текст элементов в XML может быть любым числом