私はこのような2つの要素を持っています:
<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)"/>
しかし、要素が空の場合、上記のstring-length関数は 0 を返すため、出力には 71 個ではなく 59 個のスペースのように見えるものしかありません。
私も試しました:
<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 を変更するにはどうすればよいですか?