xsl-list
[Top] [All Lists]

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

2008-03-28 03:47:40
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
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>