Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

Пользователей: 13,370
новичок: dogoco6
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных студентов на Delphi + Microsoft SQL Server
Моделирование процесса обеспечивающего надежность функционирования АСУ Т...
Калькулятор на Delphi с переводом в другую систему исчисления + Блок схемы

Создание собственной таблицы стилей
Во многих языках программирования существует традиция в качестве первого примера реальной программы приводить программу, которая содержит саму себя. Поскольку XSLT аналогичен языку программирования, то предложенный пример будет содержать цитату из начала главы.
Пример. Исходный документ имеет следующий вид:
<?xml version='1.0'?> <famous_quote>
Быть иль не 6biTb?</famous_quote>
Просмотрим этот файл в браузере Internet Explorer 5.0 (таблица стилей задана по умолчанию). К сожалению, его представление далеко от совершенства (рис. 12.1).
Естественно, дизайнер не стремился отобразить на экране дескрипторы начала и конца записи для элемента <f amous_quote>. Применим преобразования XSL Transformation для получения нужного изображения XHTML-файла в браузере Internet Explorer. Выходной файл должен иметь следующий вид:
<html> <head> <title>
Shakespeare Quotation
</title>
</head>
<body>
<Ь1>Быть иль не быть?</Ь1>
</body>
</html>
Примечание В выходном файле могут отсутствовать необходимые пробелы и отступы. Поэтому, в отличие от представленного здесь XHTML-документа, его трудно читать. Во избежание лишних проблем не пытайтесь управлять отступами в таблицах стилей и выходном документе.
При просмотре получившегося файла в Internet Explorer 5.0 становится ясно, что разработчику удалось достичь определенных успехов: в изображении выделен заголовок и намечена структура документа (рис. 12.2).
Ниже представлена XSLT-таблица стилей, которая позволяет получить такой тип изображения:
<?xml version-'1.0' ?> <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="l.0">
<xsl:template match-"/">
<html>
<head>
<title>
Shakespeare Quatation </title>
</head> <body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="famous_quote"> <hlxxsl :value-of select=" . "/></hl> </xsl:template> </xsl:stylesheet>
Чтобы понять алгоритм работы таблицы стилей, рассмотрим каждую строку документа:
<?xml version='1.О'?>
Представленная строка - это XML-объявление. Ее советуют включать в XSLT-таблицы преобразования стилей, но смысловой нагрузки она не несет.
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="l.0">
Открывающий тэг элемента <xsl: stylesheet> сообщает о том, что XSL-пространство имен настоящего документа использует заявленный консорциумом W3C для применения в XSLT-документах универсальный идентификатор ресурсов (URI).
<xsl:template match="/">
Элемент <xsl: template> служит ключевым для запуска многих XSLT-таб-лиц преобразования. Слэш является XPath-выражением, указывающим на корень документа. Поскольку исходный XML-документ, как и все деревья исходных документов, содержит корень, к нему применяется XSLT-шаблон. Главная функция, которую выполняет элемент <xsl: template>, состоит в выводе последовательности строк, формирующих XHTML-файл:
<html> <head> <title>
Shakespeare Quotation
</title>
</head>
<body>
Данный этап завершает ввод инициализирующей последовательности строк документа на языке XHTML. На выходе она примет вид литерального текста:
<xsl:apply-templates/>
Элемент <xsl: apply-templates/> используется для просмотра всех элементов, входящих в состав исходного XML-документа, и применения всех шаблонов, сопоставимых с соответствующими узлами элементов, которые входят в документ-источник.
</body> </html>
Закрывающие дескрипторы </body> и </html> выводятся в финальный файл после исполнения элемента <xsl: apply-templates/>.
Примечание Многие операции, исполняемые XSLT-процессором, не требуют соблюдения строгой последовательности. Однако для удобства восприятия этапов операций, включенных в таблицу преобразования стилей, лучше описывать конкретные действия по порядку.
Этим этапом литеральный выход завершается. Следующий элемент исходного кода - <xsl: templates>, вызываемый в результате исполнения предыдущего элемента - <xsl: apply-templates>:
</xsl:template>
<xsl:template match="famous_quote"> <hlxxsl: value-of select-" . "/></hl>
В записи присутствует элемент <xsl: templates который используется в качестве шаблона для элемента <f amous_quote>, принадлежащего исходному XML-документу. В данном случае в дереве, получаемом в качестве вывода, создается тэг <hl>. Затем элемент <xsl: value-of > применяется к содержимому элемента, который соответствует XPath-выражению «точка». Данная инструкция указывает, что текущим контекстом элемента <xsl: value-of > является содержимое элемента <f amous_quote> - строка текста «Быть иль не быть?». Она будет добавлена в дерево вывода на место, указанное элементом <xsl: apply-templates>, который размещен в XSLT-коде чуть выше.
</xsl:template> </xsl:stylesheets
Эти две строки закрывающие тэги. Первая завершает запись для элемента <xsl: tempi at е> (в данном случае XPath-выражение «точка» соответствует элементу <f amous_quote>), вторая - для элемента <xsl: stylesheet>.
Опубликовал vovan666 April 08 2013 14:58:17 · 0 Комментариев · 3241 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
С# для профессион...
PDJ Scrollers
PRNDbgrid
Averaging [Исходн...
Форма в форме
HTMLredaktor
С. Г. Горнаков - ...
Панель поиска
Генетический алго...
Панель статистики...
Таймер и секундомер
PCX
Delphi. Готовые а...
IconCut [Исходник...
Blib [Исходник на...
Распознавание тек...
EMSQuickImport
PHP 5 на примерах
Drag&Drop
CLR via C#

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97836
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Обзор ассоциативны...
Оператор присваивания
Изменение направле...
Округление по необ...
В результате вам п...
Этап тестирования
Too many open files
Книга посвящена пр...
Проблема универсал...
участвует агент SN...
Список таблиц в ди...

Создание справки (...
Cannot rename acro...
Как освободить пам...
8-11); эта структу...
Практическая реали...
Состояние потока и...
Каковы параметры с...
Спецификация lOOOB...
Конструктор Qoob
Машинное представл...
Практикум 16-1: за...
Ручная и автомати...
Использование ключ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?