Hi All,
I am trying to convert xml to csv. I am facing problem to get child node (like ProdIDT, IDV) as one line a tab delimeted txt file. Child node value is coming close without header. Please look at the below my input and XSL file.
XML
<Product>
<Record>1616200243</Record>
<Not>03</Not>
<ProductId>
<ProdIDT>02</ProdIDT>
<IDV>1616200243</IDV>
</ProductId>
<ProductId>
<ProdIDT>03</ProdIDT>
<IDV>9781616200244</IDV>
</ProductId>
<ProdFormDe>Electronic book text</ProdFormDe>
<EpTy>000</EpTy>
<NoS/>
<Title>
<TitleT>01</TitleT>
<TTx>The Sound of a Wild Snail Eating</TTx>
<Sbt>A Memoir</Sbt>
</Title>
</Product>
My XSL
<xsl:for-each select="//Product/child::*|//Product/self::*">
<xsl:if test="$fieldNames = 'yes'">
<xsl:if test="position() = 1 or position()>1">
<xsl:for-each select="@*">
<xsl:value-of select="name()"/>
<xsl:value-of select="$delimiter"/>
</xsl:for-each>
<xsl:for-each select="*">
<xsl:value-of select="name()"/>
<xsl:if test="position() != last()">
<xsl:value-of select="$delimiter"/>
</xsl:if>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:if>
<xsl:for-each select="@*">
<xsl:value-of select="."/>
<xsl:value-of select="$delimiter"/>
</xsl:for-each>
<xsl:for-each select="*">
<xsl:value-of select="."/>
<xsl:if test="position() != last()">
<xsl:value-of select="$delimiter"/>
</xsl:if>
</xsl:for-each>
<xsl:text>
Required Output
Record Not ProductId ProdIDT IDV ProductId ProdIDT IDV ProdFormDe EpTy NoS Title TitleT TTx Sbt 1616200243 03 02 1616200243 03 9781616200244 Electronic book text 000 01 The Sound of a Wild Snail Eating A Memoir
Thanks Byomokesh