Если вы собираетесь рендерить в html, у вас есть два варианта:
- используйте тег
pre
для отображения текста в браузере точно так же, как есть.
- анализирует ваш текст с помощью некоторой расширенной функции XPath 2.0 и обрабатывает каждую текстовую строку по мере необходимости
Вот первый вариант глупого примера:
<code><xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="MESSAGE/TranslationReport">
<html>
<body>
<pre>
<xsl:value-of select="."/>
</ XSL: шаблон>
</ XSL: таблицы стилей>
Во втором варианте мы проанализируем ваш текст с помощью функции XPath 2.0 tokenize
, разделив все строки и обернув каждую из них тегом eanted.
Это глупый пример:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="MESSAGE/TranslationReport">
<html>
<body>
<xsl:for-each select="tokenize(.,'\n')
[not(position()=(1,last()))]">
<p class="TranslationReport">
<xsl:value-of select=".[position()]"/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Во втором случае вывод будет:
<html>
<body>
<p class="TranslationReport">Translation Report</p>
<p class="TranslationReport">==================</p>
<p class="TranslationReport">Contains errors ? true</p>
<p class="TranslationReport">Contains warnings ? false</p>
<p class="TranslationReport">There are 9 entries in the report</p>
</body>
</html>