如何在 XSLT 2.0 中添加定义的空格数



我有一个XML到固定长度的消息转换。在每条记录的末尾,我必须添加空格,例如 - X(4(,X(15(。

除了 xsl:text 之外,是否有任何选项可以插入空格。

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

<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"> .

最新更新