我正在尝试从XML源构建固定宽度的文本文件。除了其他解决方案,我的方法如下:
<xsl:value-of select="substring(concat(wd:MailAdd/wd:CD-CITY-MAIL-ADD, $eightySpaces), 1, 26)"/>
本质上,将给定字段的值与一堆空格连接起来。然后对结果的前#个字符进行子字符串化,这样就只有该字段的宽度了。
对于具有城市BRYAN
的记录和具有城市ONE LONG INCREDIBLY UNBROKEN SENTENCE
的另一记录,上面的结果将产生如下内容:
BRYAN_____________________
和
ONE LONG INCREDIBLY UNBROK
问题是当源XML中没有元素之一时(任何记录可能有也可能没有地址)。 XSLT只是跳过该concat语句,然后移至下一行。如果concat()不知道如何串联它找不到的XPath,我想这可能有意义。
如果第一个参数的计算结果为空,是否有一种方法可以强制concat()
无条件地连接变量?