В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация, а в самом начале документа указывается стилистика XML и импорт пространства имен XML
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/">
...
</xsl:template>
... </xsl:stylesheet>
Элемент xsl:stylesheet может содержать следующие типы элементов:
В общем случае содержание XSL-документа должно удовлетворять определенным требованиям:
Правильно:
<p>Абзац</p> <img src="/hostcms/image1.gif" alt="" border= "0" />Неправильно:
<p> — непарный тег, нет закрывающего тега, либо отсутствует слэш в конце тега <img src="/hostcms/image1.gif" alt="" border= "0"> — Непарный тэг, отсутствует слэш в конце тега
Правильно:
<img src="/hostcms/image1.gif" alt="" border= "0" />Неправильно:
<img src=/hostcms/image1.gif alt="" border= "0" /> — Значение параметра src не взято в кавычки
Правильно:
<strong>Жирный текст <i>Текст курсивом</i></strong>Неправильно:
<strong>Жирный текст <i>Текст курсивом</strong></i>
Если XML-документ содержит ссылку на сущность, сущность должна быть объявлена, в противном случае документ недействителен. XML имеет только 5 предопределенных сущностей:
&
для &
<
для <
>
для >
"
для "
'
для '
Вместо можно использовать  
или  
, также можно использовать сам символ неразрывного пробела, для его набора нажмите Alt+0160.
Иным вариантом является объявление собственной сущности и затем использование
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <xsl:stylesheet version="1.0" …
Для использования значения XML-тега, путь должен быть заключен в фигурные скобки, например:
<!-- Шаблон для товара -->
<xsl:template match="shop_item">
<xsl:if test="image_small != ''">
<img src="{dir}{image_small}" alt="{name}" title="{name}" />
</xsl:if>
<div>
<a href="{url}" title="{name}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</div>
</xsl:template>
Для изображения в src подставляется значения тега dir
и image_small
, в атрибуты alt
и title
передается значение тега name
.
Для вывода Javascript кода используйте следующую конструкцию:
<script type="text/javascript">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
ЗДЕСЬ_КОД
]]>
</xsl:text>
</xsl:comment>
</script>
Если Вам нужно подставить какие-либо данные в Javascript-код из XML, то Javascript-код оборачиваете в некую функцию, которая принимает параметр myfunct(x, y, z) и т.д. Сами параметры вызываете в отдельном блоке, например:
<script type="text/javascript">
myfunct('<xsl:value-of ... />', '<xsl:value-of ... />', '<xsl:value-of ... />');
</script>
При необходимости использовать фигурную скобку в атрибутах, экранирование осуществляется удвоением скобки:
<a href="#" onclick="jQuery.function( {{ field: 'value', image: '{../dir}{file_small}' }} )">...</a>