Как стать автором
Обновить
0

XSLT *

Язык преобразования XML-документов

Сначала показывать
Порог рейтинга
Уровень сложности

Преобразование FB2 в XHTML с сохранением вложенных рисунков

Время на прочтение4 мин
Количество просмотров8.7K
Возникла у меня небольшая необходимость преобразовать книги в формате FB в xhtml.
Ну ясное дело я полез на www.gribuser.ru/xml/fictionbook/2.0/xsl/export где и взял файл
FB2_2_xhtml.xsl (заодно захватил FB2_2_txt.xsl мало ли в текстовом виде понадобится книжку получить )
Попробовал сконвертировать книжку, и заметил маленькую проблемку, рисунки то пропали. :(
В принципе рисунки не главное в книжке, но все равно немного обидно. Поэтому полезем разбираться в чем проблема.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии5

Проверка равенства, неравенства, идентичности узлов в XPath

Время на прочтение2 мин
Количество просмотров12K
С одной стороны, в языке XPath используются знакомые каждому программисту операторы сравнения «равно», «не равно», «меньше», «больше» и другие. С другой стороны, эти операторы умеют работать не только с примитивными типами, но и с целыми наборами узлов. Незнание правил сравнения наборов узлов может привести к некоторым сюрпризам.

Попробуйте быстро ответить на вопрос, чему равно следующее выражение:

foo = 'bar' and foo != 'bar'

Если ваш ответ — false, автор предлагает
Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии52

Получение дерева уникальных элементов при помощи цепочного преобразования

Время на прочтение12 мин
Количество просмотров2.6K
Многие ругают xslt за его ресурсоемкость, некрасивость, негибкость, сложность…да много за что еще, наверное, его ругают. Как раз для тех, кто ругает его по последним трем пунктам я и написала данный пост.

Этот пост признан компенсировать пробел в ваших знаниях и представить xslt во всей его красоте.

Недавно передо мной встала задача написать скрипт, который бы из исходного xml получал xml, состоящий только из уникальных элементов. Об исходном файле ничего заранее не известно, абсолютно ничего.
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии16

Дерево в выпадающем списке средствами XSLT

Время на прочтение6 мин
Количество просмотров4.2K
Допустим, у нас на сайте есть у нас нечто иерархическое. Например, категории товаров. У категорий есть подкатегории и так далее. И пусть нам захотелось вывести эту иерархию в выпадающий список.
Далее
Всего голосов 32: ↑30 и ↓2+28
Комментарии30

Истории

Локализация с помощью сущностей

Время на прочтение3 мин
Количество просмотров2.6K
Существует довольно много способов локализации XSLT-шаблонов, некоторые способы описаны студией Лебедева, но сегодня я расскажу о локализации с помощью сущностей.

ENTITY


C начала о том, что же такое «сущности», не углубляясь в DTD. Сущности — это своеобразные константы в XML-документе, описываемые с помощью DTD, и используемые в качестве сокращений. Примером такой замены могут служить буквенные обозначения символов, не присутствующих на стандартной раскладке клавиатуры (©, ®, ₤ и т.д.). Сущности описываются следующим образом:
Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии29

Три редкоиспользуемые оси в XPath

Время на прочтение2 мин
Количество просмотров78K
Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

ancestor


Задача: получить атрибут id элемента-«прадеда» foo.

Обычно в таких случаях начинают рисовать лестницы:

../../../@id

Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:

ancestor::foo[1]/@id

Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
Читать дальше →
Всего голосов 63: ↑61 и ↓2+59
Комментарии16

Рекурсивные шаблоны в XSLT

Время на прочтение12 мин
Количество просмотров12K
Привет всем!
Хочу рассказать о применении рекурсивных шаблонов в XSLT, так как многие начинающие работать с XSLT встречаются с задачами, которые требуют их применения и не знают, как такие задачи решать.
Возьмем пару обычных примеров:
1. Имеется нода со строкой, ее необходимо разбить на части по определенному символу (в нашем случае возьмем символ пробела) и каждую часть разукрасить в разные цвета.
2. Сделаем вывод номеров страниц (pager) исходя из того, что нам известно общее количество объектов (например, тем форума), количество объектов на странице и номер страницы, на которой мы в данный момент находимся.
Для начала приведу пример-основу, где мы выведем несколько чисел с использованием рекурсивных шаблонов
Всего голосов 65: ↑61 и ↓4+57
Комментарии59

Правильный textarea в XSLT с методом вывода XML

Время на прочтение2 мин
Количество просмотров2.6K
Наверное, многие, начинающие изучать XSLT, сталкивались с проблемой — textarea в режиме вывода XML выводится как одиночный закрытый тэг:
<textarea name="text" id="text"/>
, а не как пара тэгов с нулевым ребенком:
<textarea name="text" id="text"></textarea>
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии32

Практический XSLT. Использование в качестве шаблонизатора. Часть 2

Время на прочтение7 мин
Количество просмотров17K
В предыдущей статье мы разобрали основные аспекты построения шаблона с помощью XSLT. Однако, для полноценного шаблона нужно не только выводить меню сайта, но также и текстовый материал документа.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии37

Практический XSLT. Использование в качестве шаблонизатора

Время на прочтение10 мин
Количество просмотров53K
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.

Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии101

Вклад авторов