xsl-list
[Top] [All Lists]

xsl transform

2005-06-28 06:58:19
Hello,

Does somebody has a neet way to convert this tree :
<?xml version="1.0" encoding="UTF-8"?>
<results>
<row>
        <param1>p1</param1>
        <param2>p2</param2>
        <param3>p3</param3>
        <param4>p4</param4>
        <param5>p5</param5>
        <param6>p6</param6>
        ...
      <paramn>pn</paramn>
</row>
<row>
        ...
</row>
</results>

Into this one :
<?xml version="1.0" encoding="UTF-8"?>
<root fields="param1|param2|param3 ... ">
        <e a="p1" b="p2" c="p3" d="p4" e="p5" f="p6" ... z="p26" aa="p27" 
ab="p28" ... az="p52" ba="p53" .... zz="p702" />
</root>



I'm thinking of using a list of attributes names but I can't find how-to

First I don't know how to define a list, I want something like that:

<xsl:variable name="attributes">
   a,b,c,d,e,...  
</xsl:variable>
In order to access attributes[n] and use it as an xsl:attribute's name

I'd have templates that look like that : 

<xsl:template match="/results"> (this works fine)
        <root>
                <xsl:attribute name="fields">
                        <xsl:for-each select="row[1]/*">
                                <xsl:value-of select="local-name()"/>
                                <xsl:if test="not(position()=last())">|</xsl:if>
                        </xsl:for-each>
                </xsl:attribute>
                <xsl:apply-templates/>
        </root>
</xsl:template>

<xsl:template match="row"> (this I don't know how to make it work)
        <e>
                <xsl:for-each select="*">
                        <xsl:attribute name="????">
                                <xsl:value-of select="."/>
                        </xsl:attribute>
                </xsl:for-each>
        </e>
</xsl:template>


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>