xsl-list
[Top] [All Lists]

Re: [xsl] Modification to The CSV to XML transform XSLT v2 from Andrew Welch

2008-03-30 17:42:14
Hi Andrew,

Thanks for all your help - adding in the &#xD works perfectly.

Now I have another issue - It works for one CSV (one I created from scratch
in Excel and saved as a CSV). This is the 'test' file that I have already
posted. But, it does not work for another CSV that is an Excel file emailed
to me from the client that I then saved as a CSV and tried to run the
stylesheet on.

Initially it was giving me the 'Cannot locate : ...." message, but now it
just displays:
<?xml version="1.0" encoding="US-ASCII"?>

with nothing underneath.

Here is a truncated version of the new CSV:
classdate,classname,classtime,classcode,classcost,xmodid,guestlink,classdesc
ription

1/03/2008,Seafood BBQ,11.00am - 3.00pm ,BBQ ,$135,,,"Delight your family and
friends by whipping up a tasty seafood BBQ. By the end of this lunch class
youíll be able to BBQ fish, shellfish and squid to perfection."

2/03/2008,Seafood BBQ,11.00am - 3.00pm ,BBQ ,$135,,,"Delight your family and
friends by whipping up a tasty seafood BBQ. By the end of this lunch class
youíll be able to BBQ fish, shellfish and squid to perfection."

3/03/2008,Sydney eats presentsÖ,6.30pm - 8.30pm,ALI,$75,Ashley Hughes,Ashley
Hughes from Alio ,"Ashleyís time at Londonís River CafÈ and his travels
throughout Italy have given him a simple, flexible cooking style typical of
Italian cuisine.  At this hands-on dinner class heíll show you how he
combines premium produce with simple fresh flavours to produce delicious
Italian food."

5/03/2008,Quick'n'Delicious,6.30pm - 9.30pm,QND,$105,,,"At this hands-on
dinner class youíll master three seafood dishes, so quick youíll have them
on the table in no time at all for mid-week family meals, and so delicious
youíll be happy to whip them up for casual entertaining. "

8/03/2008,,11.00am - 3.00pm,CMW,$135,Christine Manfield,Christine Manfield
from Universal,"Chef, cookbook author, gourmet tour leader, and creator of a
range of Asian pastes and sauces, Chris blends a diversity of flavours,
textures and cooking methods to create original, modern food; and sheís an
excellent instructor with a gift for inspiring and teaching solid technique.
Master some of her recipes and techniques at this hands-on workshop."

9/03/2008,Seafood BBQ,11.00am - 3.00pm ,BBQ ,$135,,,"Delight your family and
friends by whipping up a tasty seafood BBQ. By the end of this lunch class
youíll be able to BBQ fish, shellfish and squid to perfection."

There are quite a few more records, but you get the idea. I did notice that
the description field has "" around it. Could this be causing the problem?

I'm extremely grateful for all the help.
Marney


On 28/3/08 9:47 PM, "Andrew Welch" 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:

On 28/03/2008, Marney Cotterill <marney(_at_)crackerbrandware(_dot_)com> 
wrote:
Hi all,

 Changing the element part to:


        <xsl:element name="{.}">
        <xsl:value-of select="$lineItems[$pos]" />
         </xsl:element>


Has in fact created a problem. I am happy to leave the initial transform as
is and
 write another inbetween my final transform, but thought I would document the
 problem to see if I am missing something.

 1. Changed the <element> tag to <xsl:element......> as above.

 2. Recieved the following error in Kernow when runnung the XSLT on the CSV
 file:
 Error at xsl:element on line 49 of file:/C:/Documents%20and%
 20Settings/cotterill/Desktop/csv-to-xml_v3.xslt:
  XTDE0820: Invalid element name. Invalid QName {classDate\r}
 XTDE0820: Invalid element name. Invalid QName {classDate\r}
  <impossible to build the stack trace>

 3. Here is the test.CSV file from notepad:
 classDay,classTime,presenter,classDate
 Monday,11am,Mark Smith,12/03/2008
 Tuesday,12am,Sally Smith,13/03/2008
 Wednesday,1pm,Mark Smith,14/03/2008

Ahh yes - sorry this is a known problem and I should've released an
updated version by now...

Normally the XML parser normalizes line endings #xD #xA (return +
newline) to a single newline #xA... but the unparsed-text() function
doesn't, so you need to changed the $lines variable to be:

<xsl:variable name="lines" select="tokenize($csv, '&#xD;&#xA;')"
as="xs:string+"/>

(I've added &#xD;)

I'm not sure that "fix" will work for all OS's as I'm not sure they
all have \r\n as line endings... maybe someone can provide the
cross-platform solution to this?


thanks

Marney Cotterill
graphic designer
                   
cracker//brandware

6 Bourke Street
Queens Park 
NSW 2022
Telephone 02 9387 2001
Facsimile 02 9387 2006
marney(_at_)crackerbrandware(_dot_)com
www.crackerbrandware.com



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--