cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Johnston <jjohns...@apache.org>
Subject Re: Database to Excel Spreadsheet
Date Thu, 05 Jun 2008 14:46:07 GMT
Matthew Monkan wrote:
> Alright, I'm really close to getting this application to work but am stumped
> over one thing.
> 
> Here is my initial XML file:
> 
> <?xml version="1.0"?>
> <execute-query xmlns="http://apache.org/cocoon/SQL/2.0">
>   <query>SELECT test_data from test_table;</query>
> </execute-query>
> 
> It gets passed through the SQL transformer and produces this XML:
> 
> <rowset>
>   <row>
>     <test_data>Puffball</test_data>
>   </row>
> </rowset>

Are you sure this is the exact XML output of the SQLTransformer stage? 
I'm surprised there is no namespace declaration.  The docs indicate this 
output should be in the http://apache.org/cocoon/SQL/2.0 namespace, in 
which case you'll need to adjust your XSLT to target the namespaced nodes.

If you're viewing the XML in Firefox, make sure you do a View Source on 
it; FF's pretty XML tree view does not show namespaces if I recall.

> 
> Okay, so now I just need to select Puffball from test_data and wrap it with
> XML that the HSSFSerializer likes. This is the XSL I use:
> 
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
> 
> <gmr:Workbook xmlns:gmr="http://www.gnome.org/gnumeric/v7">
>   <gmr:SheetNameIndex>
>     <gmr:SheetName>Sheet1</gmr:SheetName>
>   </gmr:SheetNameIndex>
>   <gmr:Sheets>
>     <gmr:Sheet>
>       <gmr:Name>Sheet1</gmr:Name>
>       <gmr:MaxCol>-1</gmr:MaxCol>
>       <gmr:MaxRow>-1</gmr:MaxRow>
>       <gmr:Cells>
>         <gmr:Cell Col="1" Row="1" ValueType="60">
> 	    <xsl:value-of select="/rowset/row/test_data[1]" />
>         </gmr:Cell>
>       </gmr:Cells>
>     </gmr:Sheet>
>   </gmr:Sheets>
> </gmr:Workbook>
> 
> </xsl:template>
> </xsl:stylesheet>
> 
> However, after the transformation I get this XML:
> 
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
> 
> <gmr:Workbook xmlns:gmr="http://www.gnome.org/gnumeric/v7">
>   <gmr:SheetNameIndex>
>     <gmr:SheetName>Sheet1</gmr:SheetName>
>   </gmr:SheetNameIndex>
>   <gmr:Sheets>
>     <gmr:Sheet>
>       <gmr:Name>Sheet1</gmr:Name>
>       <gmr:MaxCol>-1</gmr:MaxCol>
>       <gmr:MaxRow>-1</gmr:MaxRow>
>       <gmr:Cells>
>         <gmr:Cell Col="1" Row="1" ValueType="60">
> 	    <gmr:Cell ValueType="60" Row="1" Col="1"/>
>         </gmr:Cell>
>       </gmr:Cells>
>     </gmr:Sheet>
>   </gmr:Sheets>
> </gmr:Workbook>
> 
> </xsl:template>
> </xsl:stylesheet>
> 
> Notice that the <xsl:value-of select="/rowset/row/test_data[1]" /> statement
> retrieved <gmr:Cell ValueType="60" Row="1" Col="1"/>

That output makes no sense, I can't imagine any reason it would be 
duplicating the element.  Is this a direct copy-paste of the output, or 
is it possible there's just one empty gmr:Cell element and the 
duplication was a copy-paste mistake?

> 
> ?!?!

My thoughts exactly. ;)

> 
> Why did it return a copy of the Cell element and not Puffball? :,(
> 
> 
> - Matt
> 
> 
> ------------------------------------------
> 
> Robin Wyles wrote:
>> I think there is an error in your xsl here:
>>
>>   <xsl:value-of select="/Workbook/Sheets/Sheet/Cells/Cell/rowset/row/ 
>> test_data/[1]" />
>>
>> Should be...
>>
>>   <xsl:value-of select="/Workbook/Sheets/Sheet/Cells/Cell/rowset/row/ 
>> test_data[1]" />
>>
>> You don't use a slash before declaring a predicate.
>>
>> Cheers,
>>
>> Robin
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message