У меня есть переменная, как показано ниже:
<xsl:variable name="ARRAY">
One,Two,Three,Four
</xsl:variable>
В XSLT 2.0 я использовал функции токенизации и установил переменную массива:
<xsl:variable name="tokenizedSample" select="tokenize($ARRAY,',')"/>
и получить значение массива с помощью:
<xsl:value-of select="$tokenizedSample[1]"/>
К сожалению, я должен использовать XSLT 1.0, и я не знаю, как исправить эту ситуацию... Я нашел несколько примеров для создания шаблона, как показано ниже:
<xsl:template name="SimpleStringLoop">
<xsl:param name="input"/>
<xsl:if test="string-length($input) > 0">
<xsl:variable name="v" select="substring-before($input, ',')"/>
<field>
<xsl:value-of select="$v"/>
</field>
<xsl:call-template name="SimpleStringLoop">
<xsl:with-param name="input" select="substring-after($input, ',')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
и вызывая этот шаблон, как показано ниже:
<xsl:variable name="fields">
<xsl:call-template name="SimpleStringLoop">
<xsl:with-param name="input" select="$ARRAY"/>
</xsl:call-template>
</xsl:variable>
и доступ к этому новому массиву с помощью:
<xsl:value-of select="$fields[1]"/>
но не работает.
Как я могу сделать?
Мне нужна переменная XSLT 1.0 в виде массива, потому что я хочу прочитать ее, например:
$newArray[1]
Спасибо.