[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Convert XML to Excel using XSLT Question II.

Subject: RE: Convert XML to Excel using XSLT Question II.
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 19 Jun 2006 23:56:55 +0100
xml to excel xslt
> In the code I attached, in line 22, if I put 
> <xsl:apply-templates select = "/"> then a infinite loop will 
> occur. How does it come a loop? I couldn't understand.

apply-templates selects a node, in this case the root node, and looks for a
template rule matching that node, typically the one that specifies
match="/". If this template rule includes the instruction apply-templates
select="/" then the same thing happens again, and again....


 Also, 
> the result Excel/XML file have the output of "<Cell 
> xmlns="urn:schemas-microsoft-com:office:spreadsheet"><Data
> ss:Type="String"
> xmlns="urn:schemas-microsoft-com:office:spreadsheet">0</Data></Cell>",
> I don't understand how come the cell element has the xmlns attribute?
> How did this happen?

Your stylesheet has a default namespace
xmlns="urn:schemas-microsoft-com:office:spreadsheet". So the <Cell> element
in the stylesheet is really
<{urn:schemas-microsoft-com:office:spreadsheet}Cell>, because an unprefixed
element name is qualified by the default namespace. The effect of a literal
result element like <Cell> is to create an element in the result document
with the same name, that is
<{urn:schemas-microsoft-com:office:spreadsheet}Cell>. But of course this
isn't real XML syntax, so when it gets output as XML it becomes <Cell
xmlns="urn:schemas-microsoft-com:office:spreadsheet">.

Remember that your stylesheet is responsible for creating elements in the
right namespace; the serializer takes care of generating the namespace
declarations to achieve this.

Michael Kay
http://www.saxonica.com/

> 
> Below is the xslt code and xml source code.
> 
> Thanks again for your help.
> 
> Karen.
> ---------
> <?xml version='1.0' encoding='utf-8'?>
> 
> <xsl:stylesheet version="1.0"
>     xmlns="urn:schemas-microsoft-com:office:spreadsheet"
>     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
>  xmlns:user="urn:my-scripts"
>  xmlns:o="urn:schemas-microsoft-com:office:office"
>  xmlns:x="urn:schemas-microsoft-com:office:excel"
>  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
> 
> <xsl:template match="/">
>   <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
>     xmlns:o="urn:schemas-microsoft-com:office:office"
>     xmlns:x="urn:schemas-microsoft-com:office:excel"
>     xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
>     xmlns:html="http://www.w3.org/TR/REC-html40">
> <!--	<Worksheet>
> 	<xsl:attribute name="ss:Name">
> 	<xsl:value-of select="name(/*/*/*)"/>
> 	</xsl:attribute> -->
> 	<xsl:apply-templates/>
> <!--	</Worksheet> -->
> 	</Workbook>
> </xsl:template>
> 
> <!--
> <xsl:template match="/*/*">
>   <Worksheet>
>     <xsl:attribute name="ss:Name">
>   <xsl:value-of select="name(/*/*)"/>
>   </xsl:attribute>
> <xsl:apply-templates/>
> </Worksheet>
> </xsl:template>
> -->
> <!--<xsl:template match="NoteDetail">
> test
> <xsl:apply-templates/>
> </xsl:template>
> -->
> 
> <xsl:template match="TAX_CASH_FLOW_ANALYSIS/TaxCashFlowUnit">
>     <Table x:FullColumns="1" x:FullRows="1">
>       <Row>
>         <xsl:for-each select="*[position() = 1]/*">
>           <Cell><Data ss:Type="String">
>           <xsl:value-of select="local-name()"/>
>           </Data></Cell>
>         </xsl:for-each>
>       </Row>
>       <xsl:apply-templates/>
>     </Table>
> </xsl:template>
> 
> <xsl:template 
> match="TAX_CASH_FLOW_ANALYSIS/TaxCashFlowUnit/TaxCashFlowDetail">
>   <Row>
>     <xsl:apply-templates/>
>   </Row>
> </xsl:template>
> 
> <xsl:template 
> match="TAX_CASH_FLOW_ANALYSIS/TaxCashFlowUnit/TaxCashFlowDetail/*">
>   <Cell><Data ss:Type="String">
>     <xsl:value-of select="."/>
>   </Data></Cell>
> </xsl:template>
> 
> 
> </xsl:stylesheet>
> 
> --------------------
> xml source:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <TAX_CASH_FLOW_ANALYSIS 
> UpdateDateTime="2006-06-13T11:26:09.0000000-04:00">
> <TaxCashFlowUnit>
>     <TaxCashFlowDetail>
>       <EndingAIP>786593727.21233881</EndingAIP>
>       <PV>786593727.21233881</PV>
>       <PrecapOID>0</PrecapOID>
>       <OID>0</OID>
>       <RemainingOID>-35744066.285386205</RemainingOID>
>       <TaxableIncome>0</TaxableIncome>
>       <QtrInt>0</QtrInt>
>       <QtrOID>0</QtrOID>
>       <QtrIncome>0</QtrIncome>
>       <QSI>0</QSI>
>       <NQSI>0</NQSI>
>       <Principal>0</Principal>
>       <CurrentBalance>745850848.91000021</CurrentBalance>
>       <MarketDF>0</MarketDF>
>     </TaxCashFlowDetail>
>     <TaxCashFlowDetail>
>       <EndingAIP>786593727.21233881</EndingAIP>
>       <PV>786593727.21233881</PV>
>       <PrecapOID>0</PrecapOID>
>       <OID>0</OID>
>       <RemainingOID>-35744066.285386205</RemainingOID>
>       <TaxableIncome>0</TaxableIncome>
>       <QtrInt>0</QtrInt>
>       <QtrOID>0</QtrOID>
>       <QtrIncome>0</QtrIncome>
>       <QSI>0</QSI>
>       <NQSI>0</NQSI>
>       <Principal>0</Principal>
>       <CurrentBalance>745850848.91000021</CurrentBalance>
>       <MarketDF>0</MarketDF>
>     </TaxCashFlowDetail>
>     <TaxCashFlowDetail>
>       <EndingAIP>786593727.21233881</EndingAIP>
>       <PV>786593727.21233881</PV>
>       <PrecapOID>0</PrecapOID>
>       <OID>0</OID>
>       <RemainingOID>-35744066.285386205</RemainingOID>
>       <TaxableIncome>0</TaxableIncome>
>       <QtrInt>0</QtrInt>
>       <QtrOID>0</QtrOID>
>       <QtrIncome>0</QtrIncome>
>       <QSI>0</QSI>
>       <NQSI>0</NQSI>
>       <Principal>0</Principal>
>       <CurrentBalance>745850848.91000021</CurrentBalance>
>       <MarketDF>0</MarketDF>
>     </TaxCashFlowDetail>
>     </TaxCashFlowUnit>
> </TAX_CASH_FLOW_ANALYSIS>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.