我有两个这样的元素:
<PhoneNumber>0870 6071352</PhoneNumber>
<FaxNumber>01722 422301</FaxNumber>
在输出(固定宽度的文本)中,这两个都需要用前导空格填充,长度为 71 个字符
所以我尝试了:
<xsl:value-of select="substring(concat(' ', msg:ContactDetails/msg:PhoneNumber), string-length(msg:ContactDetails/msg:PhoneNumber) + 1, 71)"/>
<xsl:value-of select="substring(concat(' ', msg:ContactDetails/msg:FaxNumber), string-length(msg:ContactDetails/msg:FaxNumber) + 1, 71)"/>
但是当元素为空时,上面的字符串长度函数返回 0,所以我的输出中只得到了 59 个空格而不是 71 个空格。
我也试过:
<xsl:value-of select="substring(concat(' ', msg:ContactDetails/msg:PhoneNumber), 12, 71)"/>
<xsl:value-of select="substring(concat(' ', msg:ContactDetails/msg:FaxNumber), 12, 71)"/>
但是当 FaxNumber 或 Phonenumber 元素为空时也会发生同样的事情
如何更改我的 xsl 以处理此类情况?