Полезные ссылки на документацию по XSL

Модератор
#
Полезные ссылки на документацию по XSL
Основные принципы работы с XML/XSL
Спецификация XSLT на английском
Язык преобразований XSL (XSLT). Версия 1.0 - перевод спецификации XSL Transformations (XSLT) Version 1.0 (W3C Recommendation) на русский язык

Справочник по XSLT на сайте Microsoft, много примеров

Краткий справочник функций XSLT и XPath

FAQ на английском
Работа с датами

Оси XPath:

  • ancestor:: — Возвращает множество предков.
  • ancestor-or-self:: — Возвращает множество предков и текущий элемент.
  • attribute:: — Возвращает множество атрибутов текущего элемента.
  • child:: — Возвращает множество потомков на один уровень ниже.
  • descendant:: — Возвращает полное множество потомков.
  • descendant-or-self:: — Возвращает полное множество потомков и текущий элемент.
  • following:: — Возвращает необработанное множество, ниже текущего элемента.
  • following-sibling:: — Возвращает множество элементов на том же уровне, следующих за текущим.
  • namespace:: — Возвращает множество имеющее пространство имен (то есть присутствует атрибут xmlns).
  • parent:: — Возвращает предка на один уровень назад.
  • preceding:: — Возвращает множество обработанных элементов исключая множество предков.
  • preceding-sibling:: — Возвращает множество элементов на том же уровне, предшествующих текущему.
  • self:: — Возвращает текущий элемент.


Сокращения осей:

  • attribute:: — можно заменить на «@»
  • child:: — просто опускают
  • descendant-or-self:: — можно заменить на «//»
  • parent:: — можно заменить на «..»
  • self:: — можно заменить на «.»
Модератор
#
Re: Полезные ссылки на документацию по XSL
Пример получения значения узла по его имени:

<!-- В $listname запомним имя узла -->
<xsl:variable name="listname" select="name"/>

<!-- получим значение узла /document/$listname -->
<xsl:value-of disable-output-escaping="yes" select="/document/node()[name(.)=$listname]" />
Модератор
#
Re: Полезные ссылки на документацию по XSL
Если нужно вывести какую либо часть кода, не вписывающеюся в иерархию тегов:

<xsl:text disable-output-escaping="yes">
        <![CDATA[
         </td>
         <td valign="top">
        ]]>
        </xsl:text>
Модератор
#
Re: Re: Полезные ссылки на документацию по XSL
Модератор
#
Re: Полезные ссылки на документацию по XSL
Модератор
#
Re: Полезные ссылки на документацию по XSL
Для вывода JavaScript кода используем:

<SCRIPT>
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
ЗДЕСЬ_КОД
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
Если Вам нужно подставить какие-либо данные в JS-код из XML, то JS код оборачиваете в некую функцию, которая принимает параметр myfunct(x, y, z) и т.д.
Сами параметры вызываете в отдельном блоке, например:
<SCRIPT>
myfunct('<xsl:value-of ... />', '<xsl:value-of ... />', '<xsl:value-of ... />');
</SCRIPT>
Модератор
#
Re: Полезные ссылки на документацию по XSL
для подсчета текущего уровня вложенности в дереве (полезно, например, для получения уровня вложенности у structure) используйте
count(ancestor::имя узла)

например
count(ancestor::structure)


для вывода текущего уровня вложенности можно воспользоваться
<xsl:value-of select="count(ancestor::structure)"/>


Модератор
#
Re: Полезные ссылки на документацию по XSL
Сортировки и группировки в XSL:
http://rsl.bankir.ru/stat0012.shtml
#
Re: Полезные ссылки на документацию по XSL
http://www.w3schools.com/ - Справочная информация по XSLT и не только.. (на английском)
#
Re: Полезные ссылки на документацию по XSL
ребят дружу с xhtml давно,рhp на уровне интеграции макетов в движки и не более то есть только логика кода.

сразу в общем вопрос - какие книжки посоветуете по XSLT с
для изучения с нуля. до того уровня чтобы хоть что-то разбирать в hostcms (шаблоны xlst естественно)

на языке доступном другими словами дружелюбным к прочтению и желанию далее изучать.

c уважением сергей.
ку
Авторизация