How to add defined number of blank spaces in XSLT 2.0

时间:2019-04-29 09:23:21

标签: xslt-2.0

I have an XML to Fixed length message transformation. At the end of each record I have to add spaces for example - X(4), X(15).

Is there any options to insert the spaces apart from xsl:text.

1 个答案:

答案 0 :(得分:1)

例如,您当然可以定义参数或变量,例如

<xsl:param name="padding" as="xs:string" select="'    '"/>

,然后在需要时不使用xsl:text,而是使用<xsl:value-of select="$padding"/>。或正如我在评论中指出的,如果您要“计算”填充,则可以使用表达式<xsl:param name="padding-length" as="xs:integer" select="4"/><xsl:param name="padding" as="xs:string" select="string-join(for $in in 1 to $padding-length return ' ', '')"/>,然后将变量与xsl:value-of一起使用,当然也可以在任何concat中使用或其他地方。最后,您的示例X(4)X(15)看起来像一个函数调用,因此定义一个函数

     

,并在需要值的地方直接调用mf:X(4),例如与xsl:value-of。与XSLT 2中的任何用户定义函数一样,您需要在样式表中声明并使用一些名称空间/前缀作为函数,例如<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mf="http://example.com/mf" version="2.0" exclude-result-prefixes="mf">