this document contains a top-level text node
Можете ли вы показать нам конец таблицы стилей XSLT?Есть ли какой-нибудь текст после финала </xsl:stylesheet>
?Это может привести к этой ошибке.
Обновление
Как указал Димитр, начальные / конечные теги <xsl:template>
несбалансированы, поэтому, если вы не показываете только часть вашего XSLT, это должнобыть исправленным.
Однако я согласен с @Tim C, что вы, вероятно, вообще не хотите, чтобы объявление DOCTYPE в вашем XSLT.Вы не пытаетесь использовать сущность
в таблице стилей, вы просто пытаетесь ее воспроизвести.Поэтому, если вы удалите оператор DOCTYPE из таблицы стилей, вы ничего не потеряете.
Более того, в отличие от @Tim, DOCTYPE не нужно объявлять сущность nbsp
в выходном HTML, поскольку она ужепредопределено в HTML.
Наконец, я бы не согласился с @Tim в методе вывода неразрывного пробела в HTML.Отключение-выход-экранирование почти всегда является неправильным подходом и связано с отсутствием понимания того, как работают синтаксический анализ и сериализация.Самый простой способ вывести неразрывный пробел в XSLT - использовать числовую сущность напрямую:
<div class="headerSeparator"> </div>
Это выведет неразрывный пробел.
«Но, выговорят: «Я хочу, чтобы он вывел
!»
Это может произойти;когда output-method = "html", сериализация может использовать символьные объекты, встроенные в HTML, для выражения таких символов.Или для сериализации можно использовать  
или просто напрямую вставить неразрывный символ пробела.Все являются законным HTML, и все эквивалентны.Тогда возникает вопрос: почему вы хотите, чтобы он сериализовался как
, а не как какой-то другой эквивалент?
Если я неправильно понял, что вы пытаетесь сделать, объясните, пожалуйста, где выхотите, чтобы появилась
, и почему эта конкретная форма имеет значение.