Subject: RE: 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: 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: 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:
> > ’</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:
> > ’</myns:input>
> >
> > <xsl:template match="/">
> > <xsl:value-of select="translate(document('')/*/myns:input,
> > '’',"'")"/>
> > </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
|