|
Subject: RE: [xsl] Re: XSL to write XML tag values in columns From: "Jaime Stuardo" <jstuardo@xxxxxxxxxxx> Date: Tue, 23 Dec 2003 19:11:08 -0400 |
Sorry.. but I forgot to tell 2 things:
1) That XML was only an example. The orifinal XML will be dynamic... so f_key may have value 1, 2 or n.
2) This is the right structure I want to achieve:
<table>
<tr>
<td>f_key = 1</td>
<td>f_key = 2</td>
</tr>
<tr>
<td>blabla</td>
<td>blibli</td>
</tr>
<tr>
<td>bleble</td>
<td>bloblo</td>
</tr>
</table>
That HTML produces this output:
f_key = 1 f_key = 2
blabla blibli
bleble bloblo
Thanks
Jaime
> -----Mensaje original-----
> De: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]En nombre de Dimitre
> Novatchev
> Enviado el: Martes, 23 de Diciembre de 2003 17:01
> Para: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Asunto: [xsl] Re: XSL to write XML tag values in columns
>
>
>
> "Jaime Alejandro Stuardo Bahamonde" <jstuardo@xxxxxxxxxxx>
> wrote in message
> news:CA4A243A1C219949AABAEBF59C313C3D3AB9E7@xxxxxxxxxxxxxxxxxx
> > Hi all..
> >
> > I have an XML like this:
> >
> > <test>
> > <ROW>
> > <f_key>1</f_key>
> > <field>blabla</field>
> > </ROW>
> > <ROW>
> > <f_key>1</f_key>
> > <field>bleble</field>
> > </ROW>
> > <ROW>
> > <f_key>2</f_key>
> > <field>blibli</field>
> > </ROW>
> > <ROW>
> > <f_key>2</f_key>
> > <field>bloblo</field>
> > </ROW>
> > </test>
> >
> > I want that to be shown this way:
> >
> > 1 2
> > blabla blibli
> > bleble bloblo
> >
> > Using muenchian method I could achieve:
> >
> > 1 2
> > blabla bleble
> > blibli bloblo
> >
> > what I was not wanting.
> >
> > Long time ago someone suggested me a way to do it and it
> worked, by using
> mode="row" in XSL but I don't remember exactly how can I use it.
>
>
> This transformation:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:output method="text"/>
>
> <xsl:key name="kValByField" match="field"
> use="preceding-sibling::f_key[1]"/>
>
> <xsl:template match="/">
> <xsl:value-of select="concat(' 1','	',' 2','
')"/>
>
> <xsl:call-template name="twoColTable">
> <xsl:with-param name="pCol1" select="key('kValByField', '1')"/>
> <xsl:with-param name="pCol2" select="key('kValByField', '2')"/>
> </xsl:call-template>
> </xsl:template>
>
> <xsl:template name="twoColTable">
> <xsl:param name="pCol1" select="/.."/>
> <xsl:param name="pCol2" select="/.."/>
>
> <xsl:variable name="vnumCol1" select="count($pCol1)"/>
> <xsl:variable name="vnumCol2" select="count($pCol2)"/>
>
> <xsl:variable name="vLongerCol"
> select="$pCol1[last() > $vnumCol2]
> |
> $pCol2[last() >= $vnumCol1]"/>
>
>
> <xsl:for-each select="$vLongerCol">
> <xsl:variable name="vPos" select="position()"/>
> <xsl:value-of select="concat($pCol1[position() = $vPos],
> '	',
> $pCol2[position() = $vPos],
> '
'
> )"/>
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> when applied on this source.xml:
>
> <test>
> <ROW>
> <f_key>1</f_key>
> <field>blabla</field>
> </ROW>
> <ROW>
> <f_key>1</f_key>
> <field>bleble</field>
> </ROW>
> <ROW>
> <f_key>2</f_key>
> <field>blibli</field>
> </ROW>
> <ROW>
> <f_key>2</f_key>
> <field>bloblo</field>
> </ROW>
> <ROW>
> <f_key>1</f_key>
> <field>bleubleu</field>
> </ROW>
> </test>
>
> produces the wanted result:
>
> 1 2
> blabla blibli
> bleble bloblo
> bleubleu
>
>
>
> Dimitre Novatchev.
> FXSL developer
>
> http://fxsl.sourceforge.net/ -- the home of FXSL
> Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] How to write modular/extensib, Manuel Holtgrewe | Thread | [xsl] Re: Re: XSL to write XML tag , Dimitre Novatchev |
| [xsl] How to write modular/extensib, Manuel Holtgrewe | Date | Re: [xsl] how to group same type no, Wendell Piez |
| Month |