Я попытался изменить подход, как я видел в этом ответе, я определил шаблон для вызова внутри моего XSL-файла:
<xsl:template name="replaceNL">
<xsl:param name="pText" select="string(.)"/>
<xsl:choose>
<xsl:when test="contains($pText, '
')">
<xsl:value-of select="substring-before($pText, '
')"/>
<br />
<xsl:call-template name="replaceNL">
<xsl:with-param name="pText" select="substring-after($pText, '
')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$pText"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
В моем XSL я вызываю шаблон втаким образом:
<tr>
<td colspan="4">
<p style="padding-left:5px">
<xsl:call-template name="replaceNL">
<xsl:with-param name="pText" select="Contract/ContractDetail/DESC_NOTE"></xsl:with-param>
</xsl:call-template>
</p>
</td>
</tr>
В моей строке, которую я передал XSL, у меня может быть текст таким образом: <DESC_NOTE>daFfF
ASFAFA
FGAGA</DESC_NOTE>
Но в выводе я не вижу изменений, примененных шаблоном, inteadЯ вижу текст как «daFfF br / ASFAFA br / FGAGA», как будто тег br / является частью текста. Чего мне не хватает?