Я пытаюсь решить проблему с пространством с элементами номера телефона и факса в моем XML.
Элементы:
<PhoneNumber>0870 6071352</PhoneNumber>
<FaxNumber>01722 422301</FaxNumber>
но они также могут быть:
0870 6071352
поэтому мне нужно удалить начальные и конечные пробелы, сохранить пробел между любыми числами и вывести результат, отформатированный до фиксированной длины в 71 символ, используя начальные пробелы.
поэтому я пытаюсь написать именованный шаблон, который удалит пробелы, а затем дополнит вывод начальными пробелами до фиксированной длины 71 символа.
вот мой определенный шаблон, но он не компилируется - я получаю сообщение об ошибке Ожидается выражение ‹- и не могу понять, что отсутствует или неправильно
<!-- format the phone number with no spaces and output to 71 characters with leading spaces -->
<xsl:template name="FormattedPhoneFaxNumber">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text,' ')">
<xsl:value-of select="substring-before($text,' ')"/>
<xsl:value-of select=""/>
<xsl:call-template name="FormattedPhoneFaxNumber">
<xsl:with-param name="text" select="substring-after($text,' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring(concat(' ', $text), 1, 71)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
может ли кто-нибудь показать мне, где я ошибаюсь?
Причина, по которой мне нужно это сделать, заключается в том, что мне нужно обработать пустой элемент, имеющий начальные или конечные пробелы, а также значение или просто значение, и нам нужно вывести два поля с начальными пробелами до максимальной длины 71 персонажи.