Subject: [xsl] XSLT for CSV to XML Conversion From: "Rahul Singh rahulsinghindia15@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Feb 2019 17:15:24 -0000 |
Hi, I wrote XSL code for CSV to XML conversion but i am not getting proper output as for #Id 3 in XML. and, Also I need output as per given expected output below. Need yours help for given Input CSV, XSL Code, Current Output, Expected Output please: *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.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[no subject], Unknown | Thread | Re: [xsl] XSLT for CSV to XML Conve, Mukul Gandhi gandhi. |
[no subject], Unknown | Date | [xsl] A use-case for xsl:merge?, John Dziurlaj john@x |
Month |