В процессе создания своей версии Bespin Embedded мне показалось, что в документации не достаточно хорошо освещены некоторые моменты. Поэтому далее последует небольшой мануал для тех, кто решит повторить мой путь.
Archive for Заметки
Шаблон «Hello, world!»
Первый написанный XSLT-шаблоны — это страница, выводящая надпись «Hello, world!». Для работы с кодом используем программу IntelliJIDEA. В блоге Вадима Макишвили о работе с ней рассказано достаточно подробно.
Свой первый шаблон мы ассоциируем с главной страницей.
Сайт на XSL. Подготовка
Итак, мы делаем сайт и учим XSLT.
Сайт у нас будет на тему «календарь менструального цикла», потому что мы типа профессионалы, и для нас нет запретных тем.
Движок на PHP, а шаблоны на XSLT. Их я и буду описывать.
Простые числа и XPath
Иногда мы на работе решаем интересные задачки. Вот, например, одна (почти первая) в постановке nop`а:
Частный случай:
Дан такой xml:
<items>
<item>1</item>
<item>2</item>
...
<item>N-1</item>
<item>N</item>
</items>
т.е. выписаны все натуральные числа от 1 до N включительно. Про N ничего заранее не известно —
большое, маленькое, еще какое-то — мы не знаем.
Нужно. Написать xpath, выбирающий все item'ы с простыми числами.
Подчеркиваю — xpath.
Функции string в XSLT
В спецификации описано, как работают функции string. Поясняется, что при приведении списка узлов к строке, результатом будет строковое значение первого узла. На примере это будет выглядеть следующим образом:
Выбор нескольких нод
Бывает ситуация, когда нужно при помощи XSLT вывести, используя шаблон, не все ноды из XML, а не более N из них. Например, если вы хотите показать не более 3х комментов, оставленных пользователю за последнюю неделю. При этом в XML у вас выведены все комменты за последнюю неделю.
Чем отличается for от for in
В ходе прочтения JavaScript: The Good Parts, сочинился пример, иллюстрирующий отличия оператора for от for in.
for...in не гарантирует порядок вывода элементов массива. Правда, это удалось увидеть только на примере с наследованием.