Перечитал тему и проанализировав личный опыт от использования этой фишки понял что здесь упущен один важный нюанс.
Дело в том, что разрыв страницы в визуальном редакторе вставляется _внутрь_ текущего тега абзаца. То есть выглядит это в HTML так:
<p>Некоторый текст. Это ваше короткое описание<!-- pagebreak --></p><p>А это вторая часть вашего описания</p>
Соответственно, когда мы разобем этот код по границам условного тега <!-- pagebreak -->, то мы получим два невалидных куска:
<p>Некоторый текст. Это ваше короткое описание
и
</p><p>А это вторая часть вашего описания</p>
.
В первом, как мы видим, тег абзаца остается не закрытым, зато второй начинается с закрывающего тега абзаца. Помимо того что это не очень красиво, в некоторых случаях это может еще и привести к странному поведению макета.
Как этого избежать? А очень просто! - Нужно всего лишь выделять тег разрыва страницы в отдельный абзац! То есть перед вставкой разрыва страницы нажать на Enter, кликнуть по кнопке разрыва страницы и еще раз нажать на Enter. Тогда у нас получится следующий HTML-код:
<p>Некоторый текст. Это ваше короткое описание</p><p><!-- pagebreak --></p><p>А это вторая часть вашего описания</p>
И если теперь мы в качестве разделителя в XSL будем использовать не
<!-- pagebreak -->
а
<p><!-- pagebreak --></p>
, то в результате мы получим полностью валидный, красивый и безопасный код!
Ну и раз уж решил обновить тему, то тогда можно и сам код для xsl-шаблона написать красивее, с использованием функции contains() для проверки:
<!--Для верхней части описания-->
<xsl:choose>
<xsl:when test="contains(description,'<p><!-- pagebreak --></p>')">
<xsl:value-of disable-output-escaping="yes" select="substring-before(description,'<!-- pagebreak -->')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="description"/>
</xsl:otherwise>
</xsl:choose>
<!--Для нижней части описания-->
<xsl:choose>
<xsl:when test="contains(description,'<p><!-- pagebreak --></p>')">
<xsl:value-of disable-output-escaping="yes" select="substring-after(description,'<!-- pagebreak -->')"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>