我有一个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">
.