D'analyse et de stocker des valeurs dans la matrice de XSLT 1.0

Merci d'avance pour votre soutien. J'étais juste coincé avec un problème et essayé beaucoup de choses dans tous les sens.

J'ai une transformation XSLT 1.0 besoin d'analyser la valeur d'une balise xml par une virgule et de le stocker dans un tableau.

<OPTIONS>val1,,val2,val3,,,val4</OPTIONS>

Ici, j'ai besoin d'analyser le champ des OPTIONS valeur par une virgule, puis le stocker dans un tableau. Ici, j'ai été coincé avec la manière de les stocker dans la gamme pour une utilisation ultérieure.

S'il vous plaît conseils

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:output method="text" omit-xml-declaration="yes"/>
    <xsl:variable name="inline-array">
        <!--<Item>A</Item>
        <Item>B</Item>
        <Item>C</Item>-->

        <xsl:call-template name="splitByComma">
            <xsl:with-param name="str" select="OPTIONS"/>
        </xsl:call-template>
    </xsl:variable>

    <xsl:template match="/">
        <xsl:param name="array" select="document('')/*/xsl:variable[@name='inline-array']/*"/>
        <xsl:value-of select="$array[1]"/>          
    </xsl:template>

    <xsl:template name="splitByComma">
        <xsl:param name="str"/>
        <xsl:choose>
            <xsl:when test="contains($str,',')">
                <item><xsl:value-of select="substring-before($str,',')"/></item>
                <xsl:call-template name="splitByComma">
                    <xsl:with-param name="str"
                        select="substring-after($str,',')"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <item><xsl:value-of select="$str"/></item>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
InformationsquelleAutor Hari | 2013-08-18