|
Subject: Re: [xsl] Problem writing xsl to convert xml to excel From: Anna Bikkina <anna@xxxxxxxxxxxxxx> Date: Fri, 5 Mar 2004 17:06:38 -0500 |
Thanks to everyone who answered and sorry for the vague question . I got it
working with the below xsl, but there is one problem. The columns get
printed from column1 instead of column0. Can someone tell me how I can print
right from column0. I tried to change to do so but it didnt work.
My input xml looks like this
<result>
<column>time</column><column>time1</column>
<row><time>1</time><time1>3</time1></row>
<row><time>001</time><time1>300</time1></row>
</result>
A snippet from my xsl.
<xsl:template match="result">
<xsl:for-each select="column">
<gmr:Cell Row="0" ValueType="60">
<xsl:variable name="colnumber"><xsl:number level="single"
from="column" count="column"/></xsl:variable>
<xsl:attribute name="Col">
<xsl:value-of select="$colnumber"/>
</xsl:attribute>
<gmr:Content>
<xsl:apply-templates select="." mode="value"/>
</gmr:Content>
</gmr:Cell>
</xsl:for-each>
<xsl:for-each select="row">
<xsl:apply-templates select=".">
<xsl:with-param name="rownumber" select="position()"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="row">
<xsl:param name="rownumber" select="1"/>
<xsl:for-each select="*">
<xsl:apply-templates select=".">
<xsl:with-param name="rownumber" select="$rownumber"/>
<xsl:with-param name="colnumber" select="position()"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
On Friday 05 March 2004 12:48 pm, Wendell Piez wrote:
> Anna,
>
> It's a bit hard to answer your question since we are having to guess what
> you want your output to look like. (No we don't all use Excel every day.
> :-)
>
> In general, however, I can say you don't need or want to use a counter. (In
> XSLT you almost never do.) Accordingly, a simple and clean stylesheet to do
> what you want will look quite different from what you have so far.
>
> If you post again with a sample of the output you want, it'll be easier for
> someone to give you more concrete help.
>
> Cheers,
> Wendell
>
> At 11:30 AM 3/5/2004, you wrote:
> >Can someone please answer my question below I am stuck.
> >
> >On Thursday 04 March 2004 03:41 pm, Anna Bikkina wrote:
> > > Hi,
> > >
> > > I have a xml file that has to converted to excel. I am trying to use a
> > > xsl s stylesheet and cocoon to do this job for me.
> > >
> > > Below is my xml. I am able to display the column's correctly in excel
> > > but when it comes to data . I am not able to have <Time> data in
> > > column1, <Action> data in column. I am not able to increment the column
> > > value from 0 to 5. The problem is the number of columns I will have is
> > > not known prior . So I have to use the count() function to get this
> > > done. The way it is printing row data right now is in column 5 it
> > > prints the value of <user1> thats it. Please check the xsl below and
> > > let me know where I am making a mistake.
> > >
> > >
> > > <xsl:template match="result">
> > > <xsl:for-each select="column">
> > > <gmr:Cell Row="0" ValueType="60">
> > > <xsl:variable name="colnumber"><xsl:number
> > > level="any" from="result" count="column"/></xsl:variable>
> > > <xsl:attribute name="Col">
> > > <xsl:value-of select="$colnumber"/>
> > > </xsl:attribute>
> > > <gmr:Content>
> > > <xsl:apply-templates select="."
> >
> > mode="value"/>
> >
> > > </gmr:Content>
> > > </gmr:Cell>
> > > </xsl:for-each>
> > >
> > > <xsl:for-each select="row">
> > > <xsl:variable name="rownumber"><xsl:number level="any"
> > > from="result" count="row"/></xsl:variable>
> > > <xsl:variable name="cnumber"><xsl:number level="any"
> >
> > from="result"
> >
> > > count="column"/></xsl:variable>
> > > <xsl:for-each select="*">
> > >
> > > <gmr:Cell ValueType="60">
> > > <xsl:attribute name="Row">
> > > <xsl:value-of select="$rownumber"/>
> > > </xsl:attribute>
> > > <xsl:attribute name="Col">
> > > <xsl:value-of
> >
> > select="$cnumber"/> <!-- cnumber is not working
> >
> > > properly. How can I get this working-->
> > > </xsl:attribute>
> > > <gmr:Content>
> > > <xsl:apply-templates
> >
> > select="." mode="value"/>
> >
> > > </gmr:Content>
> > > </gmr:Cell>
> > > </xsl:for-each>
> > > </xsl:for-each>
> > >
> > > </xsl:template>
> > >
> > >
> > > My XML FILE
> > >
> > >
> > > <?xml version="1.0"?>
> > > <page>
> > > <title>Hello</title>
> > > <content>
> > > <result>
> > >
> > > <column>Time</column>
> >
> > <column>Action</column>
> >
> > <column>Price</column>
> >
> > >
> > > <column>User</column>
> >
> > <column>User1</br></column>
> >
> > > <row>
> > > <Time>1</Time>
> >
> > <Action>120000</Action>
> >
> > > <Price>13</Price>
> > >
> > > <Name>12000</Name> <Name1>120000</Name1> </row>
> > >
> > > </result>
> > > </content>
> > > </page>
> > >
> > >
> > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
> >
> > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
> ======================================================================
> Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx
> Mulberry Technologies, Inc. http://www.mulberrytech.com
> 17 West Jefferson Street Direct Phone: 301/315-9635
> Suite 207 Phone: 301/315-9631
> Rockville, MD 20850 Fax: 301/315-8285
> ----------------------------------------------------------------------
> Mulberry Technologies: A Consultancy Specializing in SGML and XML
> ======================================================================
>
>
> 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 -> |
|---|---|---|
| Re: [xsl] Problem writing xsl to co, Wendell Piez | Thread | Re: [xsl] Problem writing xsl to co, J.Pietschmann |
| RE: [xsl] Output of a FLowchart fro, cknell | Date | Re: [xsl] Problem writing xsl to co, J.Pietschmann |
| Month |