Я хотел бы знать, есть ли известная ошибка в том, как Saxon-JS обрабатывает элементы, содержащие CDATA.
У меня есть рабочий процесс XSLT 3.0 и XML, который включает в себя получение текста из элемента, содержащего CDATA, и применение разметки HTML при преобразовании. Попробую задать вопрос, не выкладывая скрипт.
Я использую Saxon-HE 9.8.0.3 и пробую последний Saxon-JS. Все, что преобразовано из файлов .xsl
в файлы .sef
, работает, за исключением ожидаемого формата текста, взятого из элемента, содержащего CDATA.
У меня есть элемент <docText>
, который содержит только <![CDATA[ ... ]]>
многострочный текст.
Я вызываю шаблон примерно так: <xsl:apply-templates select="ancestor::document/docText"/>
Я совпадает с <xsl:template match="docText/text()">
Последняя обработка текста в <docText>
, содержащегося в переменной, выводится следующим образом: <xsl:value-of select="$step9-2" disable-output-escaping="yes" />
Опять же, вывод верен с рабочей разметкой HTML, когда я использую исходное преобразование с Saxon-HE, XML и XSLT 3.0 из командной строки на Java. Сценарий преобразования почти идентичен для использования с Saxon-JS, и работает вся логика, кроме форматирования текста, изначально находящегося в разделах CDATA. Текст выводится, но в неформатированном виде.
Есть ли причина, по которой ошибка может быть связана с тем, как Saxon-JS обрабатывает или не обрабатывает разделы CDATA, как это делает Saxon-HE?
Майкл
disable-output-escaping
. Как вы используете XSLT 3 с Saxon-JS, есть ли какое-либо использование API, при котором вы сериализуете результат, чтобыdisable-output-escaping
мог иметь какой-либо эффект? - person Martin Honnen   schedule 18.02.2018