Store variables during loop and use in it another template

Posted by krisvandenbergh on Stack Overflow See other posts from Stack Overflow or by krisvandenbergh
Published on 2010-05-02T09:07:13Z Indexed on 2010/05/02 9:17 UTC
Read the original article Hit count: 276

Filed under:
|
|
|

Is there a way to store a variable/param during a for-each loop in a sort of array, and use it in another template, namely <xsl:template match="Foundation.Core.Classifier.feature">. All the classname values that appear during the for-each should be stored. How would you implement that in XSLT? Here's my current code.

<xsl:for-each select="Foundation.Core.Class">       
            <xsl:for-each select="Foundation.Core.ModelElement.name">
                <xsl:param name="classname">
                     <xsl:value-of select="Foundation.Core.ModelElement.name"/>
                </xsl:param>
            </xsl:for-each>
            <xsl:apply-templates select="Foundation.Core.Classifier.feature" /> 
        </xsl:for-each>

Here's the template in which the classname parameters should be used.

    <xsl:template match="Foundation.Core.Classifier.feature">
    <xsl:for-each select="Foundation.Core.Attribute">
            <owl:DatatypeProperty rdf:ID="{Foundation.Core.ModelElement.name}">
                <rdfs:domain rdf:resource="$classname" />
            </owl:DatatypeProperty>

    </xsl:for-each>
</xsl:template>

The input file can be found at http://krisvandenbergh.be/uml_pricing.xml

© Stack Overflow or respective owner

Related posts about xsl

Related posts about xslt