После генерации xml-кода некоторые тэги имеют в качестве своего значения текстовую информацию с переносом строк. Необходимо отобразить эти переносы в выходном html как тэги <br/>. Ниже приведен пример xsl-шаблона, к котором жирным шрифтом выделены вызов шаблона, а также сами шаблоны, непосредственно осуществляющие замену символа переноса строки (
 ) на тэг <br>.
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0"/>
<xsl:template match="/document_list">
<xsl:apply-templates select="order_list"/>
</xsl:template>
<xsl:template match="description">
<xsl:call-template name="replace"/>
</xsl:template>
<xsl:template name="replace" match="text()" mode="replace">
<xsl:param name="str" select="."/>
<xsl:param name="search-for" select="'
'"/>
<xsl:param name="replace-with">
<xsl:element name="br"/>
</xsl:param>
<xsl:choose>
<xsl:when test="contains($str, $search-for)">
<xsl:value-of select="substring-before($str, $search-for)"/>
<xsl:copy-of select="$replace-with"/>
<xsl:call-template name="replace">
<xsl:with-param name="str"
select="substring-after($str, $search-for)"/>
<xsl:with-param name="search-for" select="$search-for"/>
<xsl:with-param name="replace-with" select="$replace-with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="order_list">
<xsl:apply-templates select="description"/>
</xsl:template>
</xsl:stylesheet>
Например, данный xsl-шаблон, примененный к xml-коду, имеющему следующий элемент:
<description>Дата доставки: 7.10.
Организация: хостмэйк
Имя получателя: Иванов Иван
Телефон получателя: 123-00-00
</description>
выдаст в качестве результата следующее:
Дата доставки: 7.10.<br>
Организация: хостмэйк<br>
Имя получателя: Иванов Иван<br>
Телефон получателя: 123-00-00<br>