XSLT | страница 80
УСОВЕРШЕНСТВОВАНИЯ В XSLT 2.0
Один из вопросов, которые призван решить XSLT 2.0, это упрощение импорта подобного текста без разбора из других файлов.
Отключение вывода эскейп-последовательностей
При помощи >
можно включать в выходной документ непосредственно символы < и &, а не последовательности ><
и >&
. Для этого следует установить атрибут >disable-output-escaping
элемента >
в yes («да», по умолчанию он установлен в >no
, «нет»). В приведенном ниже примере я при помощи >
непосредственно пишу текст ">
" в выходной документ:
>
>
> version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>
>
>
> Planets
>
>
>
>
>
>
>
>
>
> <PLANET/>
>
>
>
Результат следующий:
>
>
>
> Planets
>
>
>
>
>
>
>
>
Разумеется, не обязательно выводить >
при помощи >
: этот элемент можно было поместить непосредственно в элемент буквального результата. Но что делать в тех случаях, когда процессор XSLT не сможет распознать нужный нам в выходном документе элемент как фактический элемент? Например, в преобразованных документах XHTML вам потребуется >
, но процессор XSLT сочтет, что это не хорошо сформированный XML. Как поместить этот элемент в выходные данные?
Можно попробовать поместить этот элемент в раздел >
, как мы увидим в главе 6, и попытаться трактовать его как простые символьные данные, но процессоры XSLT все равно заменят < на ><
, а > на >>
.
Правильный способ добавить в вывод элемент >
— использовать атрибут >doctype-public
элемента >
, как мы увидим в главе 6, но в качестве демонстрации для этих целей здесь я отключу вывод ESC-последовательностей в элементе >
(хотя этот способ не рекомендован для создания элементов >
). Вот как это выглядит:
>
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">