




Если вы можете использовать XPath 2.0, см. Этот ссылка на функцию.
xslt имеет доступный некоторые функции форматирования
Use the XPathsubstring() функция, как показано в решении ниже:
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "text"/>
<!-- -->
<xsl:variable name = "vrMonths">
<m>January</m>
<m>February</m>
<m>March</m>
<m>April</m>
<m>May</m>
<m>June</m>
<m>July</m>
<m>August</m>
<m>September</m>
<m>October</m>
<m>November</m>
<m>December</m>
</xsl:variable>
<!-- -->
<xsl:variable name = "vMonths" select=
"document('')/*/xsl:variable[@name='vrMonths']/*"/>
<!-- -->
<xsl:template match = "date">
<xsl:value-of select=
"concat(substring(.,7), ' ',
$vMonths[number(substring(current(),5,2))], ' ',
substring(.,1,4))"
/>
</xsl:template>
<!-- -->
<xsl:template match = "time">
<xsl:value-of select=
"concat(substring(.,1,2),':',substring(.,3))"/>
</xsl:template>
</xsl:stylesheet>
Когда вышеуказанное преобразование применяется к этому XML-документу:
<t>
<date>20050728</date>
<time>0004</time>
</t>
желаемый результат получен:
28 July 2005
00:04