Subject: RE: [xsl] XML Elements to XML Attributes From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 14 Jan 2007 23:33:24 -0000 |
Using a for-each and testing position() seems clumsy, compared with explicit indexing. What's wrong with <entry tag="{td[1]}" attribute="{td[2]}" type="{td[3]}" description="{td[4]}"/> Not coming from a C/C++ world, I can't see why you would want to use variables. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Mathieu Malaterre [mailto:mathieu.malaterre@xxxxxxxxx] > Sent: 14 January 2007 01:32 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] XML Elements to XML Attributes > > Hello, > > I have a very simple question. I have currently the > following xsl script (1). But instead of creating elements I > would like to create attributes, something like: > > <entry tag="{$1}" attribute="{$2}" type="{$3}" description="{$4}"/> > > Where $1-4 are the values coming from the loop at > position() respectively 1-4. > Coming from a C/C++ world I would have created variables, > unfortunately I cannot do that with the loop. I must be > missing something trivial to be able to rewrite it correctly in XSL. > > Thanks > > > (1) > <entry> > <xsl:for-each select="td"> > <xsl:variable name="cur_val"> > <xsl:value-of select="."/> > </xsl:variable> > <xsl:choose> > <xsl:when test="position() = 1"> > <tag d="{$cur_val}"/> > </xsl:when> > <xsl:when test="position() = 2"> > <attribute d="{$cur_val}"/> > </xsl:when> > <xsl:when test="position() = 3"> > <type d="{$cur_val}"/> > </xsl:when> > <xsl:when test="position() = 4"> > <description d="{$cur_val}"/> > </xsl:when> > <xsl:otherwise> > <bug/> > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> > </entry> > > > -- > Mathieu
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XML Elements to XML Attri, Mukul Gandhi | Thread | Re: [xsl] XML Elements to XML Attri, Mathieu Malaterre |
Re: [xsl] Prevent compilation error, Florent Georges | Date | RE: [xsl] Prevent compilation error, Michael Kay |
Month |