Я пытаюсь конвертировать XML в CSV. Я сталкиваюсь с проблемой, чтобы получить дочерний узел (например, ProdIDT, IDV) как одну строку в текстовом файле с разделителями табуляции Значение дочернего узла приближается без заголовка. Пожалуйста, посмотрите ниже мой входной файл и XSL-файл.
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>
Мой 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>
Требуемый вывод
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
Спасибо
Byomokesh