Subject: Re: [xsl] XSL for CSV to XML From: "Adam Retter adam.retter@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 14 Feb 2019 08:29:44 -0000 |
Perhaps this existing XSLT would be of use - https://github.com/digital-preservation/csv-tools On Thu, 14 Feb 2019 at 06:53, Rahul Singh rahulsinghindia15@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hi, > > I wrote XSL for CSV to XML conversion but i am not getting proper output for #Id 3. and Also I need output as per given expected output. Need yours help please for given Input CSV, XSL Code, Current Output, Expected Output: > > Input CSV: > > <root>ID|Value|Number|descr1|descr2|descr3|descr4 > 1|AAAAA|1|aaaaaaaaaaa|aaaaaaaaaaa|aaaaaaaaaaa|aaaaaaaaaaa > 2|AAAAA|2|aaaaaaaaaaa|aaaaaaaaaa|aaaaaaaa|aaaaaaaaaaaa > 3|AAAAA|3|aaaaaaaaaaa > aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|aaaaaaaaaaa|aaaaaaaaaaa|aaaaaaaaaaa</root> > > XSL Code: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"> > <xsl:output method="xml" indent="yes" encoding="UTF-8"/> > <xsl:template match="/"> > <root> > <xsl:call-template name="texttorows"> > <xsl:with-param name="StringToTransform" select="root"/> > </xsl:call-template> > </root> > </xsl:template> > <xsl:template name="texttorows"> > <xsl:param name="StringToTransform" select="''"/> > <xsl:choose> > <xsl:when test="contains($StringToTransform,'
')"> > <row> > <xsl:call-template name="csvtoxml"> > <xsl:with-param name="StringToTransform" select="substring-before($StringToTransform,'
')"/> > </xsl:call-template> > </row> > <xsl:call-template name="texttorows"> > <xsl:with-param name="StringToTransform"> > <xsl:value-of select="substring-after($StringToTransform,'
')"/> > </xsl:with-param> > </xsl:call-template> > </xsl:when> > <xsl:otherwise> > <row> > <xsl:call-template name="csvtoxml"> > <xsl:with-param name="StringToTransform" select="$StringToTransform"/> > </xsl:call-template> > </row> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > <xsl:template name="csvtoxml"> > <xsl:param name="StringToTransform" select="''"/> > <xsl:choose> > <xsl:when test="contains($StringToTransform,'|')"> > <elem> > <xsl:value-of select="substring-before($StringToTransform,'|')"/> > </descr1> > <xsl:call-template name="csvtoxml"> > <xsl:with-param name="StringToTransform"> > <xsl:value-of select="substring-after($StringToTransform,'|')"/> > </xsl:with-param> > </xsl:call-template> > </xsl:when> > <xsl:otherwise> > <elem> > <xsl:value-of select="$StringToTransform"/> > </descr1> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > </xsl:stylesheet> > > Current Output: > > <?xml version="1.0" encoding="UTF-8"?> > <root> > <row> > <elem>ID</descr1> > <elem>Value</descr1> > <elem>Number</descr1> > <elem>descr1</descr1> > <elem>descr2</descr1> > <elem>descr3</descr1> > <elem>descr4</descr1> > </row> > <row> > <elem>1</descr1> > <elem>AAAAA</descr1> > <elem>1</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > </row> > <row> > <elem>2</descr1> > <elem>AAAAA</descr1> > <elem>2</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaa</descr1> > <elem>aaaaaaaa</descr1> > <elem>aaaaaaaaaaaa</descr1> > </row> > <row> > <elem>3</descr1> > <elem>AAAAA</descr1> > <elem>3</descr1> > <elem>aaaaaaaaaaa</descr1> > </row> > <row> > <elem>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > <elem>aaaaaaaaaaa</descr1> > </row> > </root> > > Expected Output: > > <?xml version="1.0" encoding="UTF-8"?> > <root> > <row> > <ID>1</ID> > <Value>AAAAA</Value> > <Number>1</Number> > <descr1>aaaaaaaaaaa</descr1> > <descr2>aaaaaaaaaaa</descr3> > <descr3>aaaaaaaaaaa</descr3> > <descr4>aaaaaaaaaaa</descr4> > </row> > <row> > <ID>2</ID> > <Value>AAAAA</Value> > <Number>2</Number> > <descr1>aaaaaaaaaaa</descr1> > <descr2>aaaaaaaaaa</descr2> > <descr3>aaaaaaaa</descr3> > <descr4>aaaaaaaaaaaa</descr4> > </row> > <row> > <Id>3</Id> > <Value>AAAAA</Value> > <Number>3</Number> > <descr1>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</descr1> > <descr2>aaaaaaaaaaa</descr2> > <descr3>aaaaaaaaaaa</descr3> > <descr4>aaaaaaaaaaa</descr4> > </row> > </root> > > > Thanks, > Rahul. > XSL-List info and archive > EasyUnsubscribe (by email) -- Adam Retter skype: adam.retter tweet: adamretter http://www.adamretter.org.uk
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSL for CSV to XML, Liam R. E. Quin liam | Thread | Re: [xsl] XSL for CSV to XML, G. Ken Holman g.ken. |
Re: [xsl] XSL for CSV to XML, Liam R. E. Quin liam | Date | Re: typescript [was: Re: [xsl] How , Mukul Gandhi gandhi. |
Month |