[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] CSV file from an XML source file using XSLT


Subject: RE: [xsl] CSV file from an XML source file using XSLT
From: "Matt Trimmer" <matt.trimmer@xxxxxxxxxxxxxx>
Date: Wed, 20 Aug 2003 13:41:25 +0100

Hi,

So this is interesting. Obviously the pound sign wasn't the problem at al.
The XML source comes from MS Access. It would seem that Access uses a 2019
(a right single quotation) and not an real apostrophe (0027). So although I
do have control over the input, I can't seem to change it. 

It's strange I transformed this data into various XML formats (encoded to
ISO) but they do not give me a problem. However I did use the cdata elements
command which I guess avoided the issue?

I am trying to understand your translate function. My XSL is quite simple
(sample below), the only challenge is that the Description field  in the
source XML has these 2019s in it. I would be grateful of any further help
anyone can give.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="ISO-8859-1" method="text" indent="no" />
<xsl:template match="dataroot">
"Term","Term2","Description"
<xsl:for-each select="XMLFeed">
"<xsl:value-of select="Term"/>","<xsl:value-of
select="Term2"/>","<xsl:value-of select="Description"/>",</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

 



  



> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Matt Trimmer
> Sent: 17 August 2003 21:44
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] CSV file from an XML source file using XSLT
> 
> 
> 
> Thank you very much!
>  
> 
> 
> 
>   
> 
> 
> 
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> > G. Ken Holman
> > Sent: 17 August 2003 21:13
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: RE: [xsl] CSV file from an XML source file using XSLT
> > 
> > 
> > At 2003-08-17 18:54 +0100, Matt Trimmer wrote:
> > >Thanks for this, but this is what I am doing and I get:
> > >
> > >Output character not available in this encoding (decimal 8217).
> > >
> > >Transformation failed.
> > 
> > Yes, of course it would ... that character is:
> > 
> > 2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA
> > QUOTATION MARK;;;;
> > 
> > ... and that isn't a text character in any character set
> > other than Unicode.
> > 
> > At 2003-08-16 00:11 +0100, Matt Trimmer wrote:
> > >I need to make the CSV file ISO as opposed UTF
> > >otherwise common viewers such as excel will not read the
> > information in
> > >the CSV file properly.
> > 
> > Then you can't use the right single quotation mark, because
> > that isn't an 
> > ISO character ... the error message is precise and 
> > unambiguous: you are 
> > asking to output a character that is not available in your 
> > desired encoding.
> > 
> > Perhaps you could use a single quote in its place.  If you 
> don't have
> > control over your input, you might consider the translate() 
> > function as I 
> > have in the example below, where I first replicate your 
> > problem (you didn't 
> > give us any sample code to work with) and then suggest the 
> > use of the function.
> > 
> > I hope this helps.
> > 
> > ............ Ken
> > 
> > 
> > T:\ftemp>type trimmer.xsl
> > <?xml version="1.0" encoding="iso-8859-1"?>
> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> >                  xmlns:myns="dummy"
> >                  version="1.0">
> > 
> > <xsl:output method="text" encoding="iso-8859-1"/>
> > 
> > <myns:input> Here is a single comma quotation mark:
> > &#8217;</myns:input>
> > 
> > <xsl:template match="/">
> >    <xsl:value-of select="document('')/*/myns:input"/>
> > </xsl:template>
> > 
> > </xsl:stylesheet>
> > 
> > T:\ftemp>saxon trimmer.xsl trimmer.xsl
> > Error at xsl:value-of on line 11 of file:/T:/ftemp/trimmer.xsl:
> >    Output character not available in this encoding (decimal
> > 8217) Transformation failed: Run-time errors were reported
> > 
> > T:\ftemp>type trimmer2.xsl
> > <?xml version="1.0" encoding="iso-8859-1"?>
> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> >                  xmlns:myns="dummy"
> >                  version="1.0">
> > 
> > <xsl:output method="text" encoding="iso-8859-1"/>
> > 
> > <myns:input> Here is a single comma quotation mark:
> > &#8217;</myns:input>
> > 
> > <xsl:template match="/">
> >    <xsl:value-of select="translate(document('')/*/myns:input,
> >                                    '&#8217;',&#34;'&#34;)"/>
> > </xsl:template>
> > 
> > </xsl:stylesheet>
> > 
> > T:\ftemp>saxon trimmer2.xsl trimmer2.xsl
> >   Here is a single comma quotation mark: '
> > T:\ftemp>rem Done!
> > 
> > T:\ftemp>
> > 
> > 
> > --
> > Instructor-led on-site corporate, government & user group
> > training for XSLT and XSL-FO world-wide; please contact us 
> > for the details; Next public European delivery:  3-day 
> > XSLT/2-day XSL-FO 2003-09-22
> > 
> > G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> > Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
> > Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
> > ISBN 0-13-065196-6                       Definitive XSLT and XPath
> > ISBN 0-13-140374-5                               Definitive XSL-FO
> > ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
> > ISBN 1-894049-11-X               Practical Formatting Using XSL-FO
> > Member of the XML Guild of Practitioners:     http://XMLGuild.info
> > Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc
> > 
> > 
> >  XSL-List info and archive:  
> http://www.mulberrytech.com/xsl/xsl-list
> > 
> 
> 
>  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
Keywords