
Презентации и примеры / XSL
.pdf
XSL
eXtensible Stylesheet Language
вторник, 5 апреля 2011 г.

Общий принцип преобразований

Структура документа XSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method ="html" media-type ="text/xml"/>
<xsl:template match=“…"> <!--
Определение шаблона
--> </xsl:template>
…
</xsl:stylesheet>

Атрибуты output
method (XML, HTML или text) encoding
media-type – задаѐт MIME-тип (text/xml) doctype-system или doctype-public
Например:
<xsl:output doctype-system=“example.dtd”>
формирует в выходном документе
<!DOCTYPE root SYSTEM “example.dtd”>
<xsl:output doctype-public=“-//W3C//DTD XHTML 1.0 Transitional//EN”>
формирует в выходном документе
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml/DTD/XHTML1-transitional.dtd”>

Шаблоны
<xsl:template match=“example”> <!--
Определение шаблона, которое может включать в себя статическое содержимое, ссылки на шаблоны вложенных элементов, вставку значений элемента и его атрибутов
--> </xsl:template>

Применение шаблонов
<xsl:template match=“example”> <html>
<head>
<title>example</title>
</head>
<body> <!--<xsl:apply-templates/>--> <xsl:apply-templates select=“child”/>
</body>
</html>
</xsl:template>

Обработка повторяющихся потомков
<xsl:template match=“example”> <xsl:for-each select=“child”>
<!-- --> </xsl:for-each>
</xsl:template>

Получение значений узлов и атрибутов
<xsl:value-of select=“.”/>
<xsl:value-of select=“child”/>
<xsl:value-of select=“@attr”/>

Вывод текстовых фрагментов
<xsl:text>
Произвольное текстовое содержимое
</xsl:text>

Выражения XPath
example
*
@attr
@*
example[3]
example[last()]
*/example
/exapmle/child[3]/item[2]
//example
.//example
..