[xsl] Variable creation and scoping

Subject: [xsl] Variable creation and scoping
From: Andrew Kirkpatrick <ncam_tech@xxxxxxxx>
Date: Tue, 15 Apr 2003 14:50:17 -0400
I want to create a number of variables from an external document in order to
transform a different XML file, but the way that I thought to accomplish
this was using for-each to cycle through the elements in the external
document doesn't accomplish what I want because the variables seem to only
exist within the for-each.

My external doc.  Over time, the values for the attributes of "c" will
change.  Note that not all instances of "c" attributes have values.  If foo
or bar are empty, no variable should be created:

<a>
    <b>
        <c foo="3" bar="4"/>
        <c foo="" bar="">
    </b>
    <b>
        <c foo="5" bar="3"/>
    </b>
</a>

I can generate the variables by entering the following at the top of the xsl
for each variable, but I'd like to do it in a way that makes the variables
global (or at least for a template) and in a way that will still work after
the external document is updated.

<xsl:variable name="c1">
    <xsl;value-of select="document('external.xml')/a/b/c/@foo *
document('external.xml')/a/b/c/@bar"/>
</xsl:variable>

Is there an easier/cleaner/better way to do this that will allow me to not
edit the xsl when the xml file used to create the variables is altered?

Thanks,
AWK


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread