Я пытаюсь преобразовать XML в плоский файл.Я новичок в XSLT и столкнулся с небольшой проблемой.Я получаю записи заголовка и записи трейлера в двух разных строках, но я хочу, чтобы они были в одной строке.Кроме того, я хочу добавить пробел в плоский файл, если длина заполнителя меньше 100 в XML, и вот мой xml
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<HeaderRecord>
<FileType>35</FileType>
<Filler>0000000</Filler>
<ControlVoucher>
<ControlVoucherType>52</ControlVoucherType>
<DirectCredit>
<Filler>000</Filler>
<value>20001016756726</value>
</DirectCredit>
</ControlVoucher>
<ControlVoucher>
<ControlVoucherType>51</ControlVoucherType>
<DirectDebit>
<Filler>000</Filler>
<value>20001016756</value>
</DirectDebit>
</ControlVoucher>
</HeaderRecord>
<TrailerRecord>
<TotalValue>00000000000001475144</TotalValue>
<Filler>00000000000000</Filler>
</TrailerRecord>
</Root>
И мой XSLT равен
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="text" omit-xml-declaration="yes"
indent="no" media-type="text/plain" />
<xsl:strip-space elements="*" />
<xsl:template match="Root">
<xsl:for-each select="HeaderRecord">
<xsl:text>00</xsl:text>
<xsl:value-of select="FileType" />
<xsl:value-of select="Filler" />
<xsl:for-each select="ControlVoucher">
<xsl:text>88</xsl:text>
<xsl:value-of select="ControlVoucherType" />
<xsl:choose>
<xsl:when test="ControlVoucherType = 52">
<xsl:for-each select="DirectCredit">
<xsl:value-of select="Filler" />
<xsl:value-of select="value" />
</xsl:for-each>
</xsl:when>
<xsl:when test="ControlVoucherType = 51">
<xsl:for-each select="DirectDebit">
<xsl:value-of select="Filler" />
<xsl:value-of select="value" />
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:for-each select="TrailerRecord">
<xsl:text>99</xsl:text>
<xsl:value-of select="TotalValue" />
<xsl:value-of select="Filler" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>