Узнайте, как выполнять XSL-преобразования на стороне сервера в Dreamweaver. Создание XSLT-страниц и преобразование HTML-страниц в XSLT-страницы.
Пользовательский интерфейс в Dreamweaver и более поздних версиях стал проще. В результате этого некоторые функции, описанные в этой статье, могут отсутствовать в Dreamweaver и более поздних версиях. Дополнительные сведения см. в этой статье.
Последовательность действий для выполнения серверных XSL-преобразований
Вы можете выполнять серверные XSL-преобразования на сервере. Прочитайте о серверных и клиентских XSL-преобразованиях и об использовании XML и XSL с веб-страницами перед созданием страниц, которые отображают XML-данные.
Для выполнения преобразования на сервере этот сервер должен быть правильно настроен. Для получения более подробных сведений свяжитесь с администратором сервера.
Общий технологический процесс выполнения серверных XSL-преобразований выглядит следующим образом (каждый шаг описан в других темах):
1.Настройте сайт Dreamweaver.
2.Выберите серверную технологию и настройте сервер приложений.
3.Протестируйте сервер приложений.
Например, создайте страницу, которая требует обработки, и убедитесь, что сервер приложений обрабатывает страницу.
4.Создайте XSLT-фрагмент или страницу или преобразуйте HTML-страницу в XSLT-страницу.
На вашем сайте Dreamweaver создайте XSLT-фрагмент или целую XSLT-страницу.
Преобразуйте существующую HTML-страницу в целую XSLT-страницу.
5.Прикрепите источник XML-данных к странице.
6.Отобразите XML-данные, привязав данные к XSLT-фрагменту или ко всей XSLT-странице.
7.При необходимости добавьте объект Repeating Region XSLT к таблице или строке таблицы, которая содержит заполнители XML-данных.
8.Вставьте ссылки.
Чтобы вставить ссылку на XSLT-фрагмент в вашу динамическую страницу, используйте серверное поведение XSL Transformation.
Чтобы вставить ссылку на всю XSLT-страницу в динамическую страницу, удалите весь HTML-код с динамической страницы, а затем используйте серверное поведение XSL Transformation.
9.Опубликуйте страницу и фрагмент.
Опубликуйте как динамическую страницу, так и XSLT-фрагмент (или всю XSLT-страницу) на ваш сервер приложений. Если вы используете локальный XML-файл, его также необходимо опубликовать.
10.Просмотрите динамическую страницу в браузере.
Когда вы это сделаете, сервер приложений преобразует XML-данные, вставит их в динамическую страницу и отобразит в браузере.
Создание XSLT-страницы
Вы можете создавать XSLT-страницы, которые позволяют отображать XML-данные на веб-страницах. Вы можете cоздать либо целую XSLT-страницу — XSLT-страницу, которая содержит тег <body> и тег <head> — либо можете cоздать XSLT-фрагмент. Когда вы создаете XSLT-фрагмент, вы создаете независимый файл, который не содержит тегов body или head — простой фрагмент кода, который позже вставляется в динамическую страницу.
Если вы начинаете с существующей XSLT-страницы, присоедините к ней источник XML-данных.
Выберите XSLT (Вся страница), чтобы создать полную страницу XSLT.
Чтобы создать XSLT-фрагмент, выберите «XSLT (фрагмент)».
- Выберите «Присоединить локальный файл», нажмите кнопку «Обзор», найдите локальный XML-файл на компьютере и нажмите кнопку «ОК».
- Выберите «Присоединить удаленный файл», введите URL-адрес XML-файла в Интернете (например, для файла из канала RSS) и нажмите кнопку «ОК».
При нажатии кнопки «Отмена» будет создана новая XSLT-страница без присоединенного источника XML-данных.
На панели «Привязки» отобразится схема указанного источника XML-данных.
В следующей таблице приведены пояснения к различным элементам схемы.
Element |
Представляет |
Подробно |
|---|---|---|
<> |
Обязательный неповторяющийся XML-элемент |
Элемент, который встречается ровно 1 раз на своем родительском узле |
<>+ |
Повторяющийся XML-элемент |
Элемент, который встречается 1 или несколько раз на своем родительском узле |
<>+ |
Необязательный XML-элемент |
Элемент, который не встречается на своем родительском узле ни разу или встречается несколько раз |
Узел элемента выделен полужирным |
Текущий элемент контекста |
Обычно это повторяющийся элемент, когда курсор вставки находится внутри повторяющейся области |
@ |
XML-атрибут |
|
Преобразование HTML-страниц в XSLT-страницы
Также можно преобразовать существующие HTML-страницы в страницы XSLT. Например, если у вас есть готовая статичная страница, к которой нужно добавить данные XML, можно преобразовать страницу в страницу XSLT вместо создания страницы XSLT и перепроектирования страницы с самого начала.
В окне документа откроется копия страницы. Новая страница представляет собой таблицу стилей XSL, сохраненную с расширением .xsl.
Присоединение источников XML-данных
Если вы начинаете с существующей страницы XSLT или не прикрепляете источник данных XML при создании новой страницы XSLT в Dreamweaver, необходимо прикрепить источник данных XML с помощью панели «Привязки».
Кроме того, чтобы добавить источник XML-данных, можно щелкнуть привязку «Источник» в правом верхнем углу панели «Привязки».
Выберите «Прикрепить локальный файл», нажмите кнопку «Обзор», перейдите к локальному файлу XML на вашем компьютере и нажмите «ОК».
Выберите «Прикрепить удаленный файл» и введите URL-адрес файла XML в Интернете (например, из RSS-канала).
Панель «Привязки» заполняется схемой вашего источника данных XML.
Отображение XML-данных на XSLT-страницах
После создания страницы XSLT и прикрепления источника данных XML можно привязать данные к странице. Для этого нужно добавить заполнитель данных XML на страницу, а затем использовать построитель выражений XPath или инспектор свойств для форматирования выбранных данных, которые будут отображаться на странице.
В большинстве случаев для отображения повторяющихся элементов XML на странице используется объект XSLT «Повторяющаяся область». В этом случае можно создать таблицу из одной строки с одним или несколькими столбцами или таблицу из двух строк, если нужно включить заголовок таблицы.
На странице появляется заполнитель данных XML. Заполнитель выделен и заключен в фигурные скобки. Он использует синтаксис XPath (язык путей XML) для описания иерархической структуры схемы XML. Например, если перетащить дочерний элемент title на страницу, и у этого элемента есть родительские элементы rss, channel и item, то синтаксис заполнителя динамического контента будет {rss/channel/item/title}.
Дважды щелкните заполнитель данных XML на странице, чтобы открыть построитель выражений XPath. Построитель выражений XPath позволяет форматировать выбранные данные или выбирать другие элементы из схемы XML.
При предварительном просмотре с помощью пункта меню «Просмотреть в браузере» Dreamweaver выполняет XSL-преобразование без использования сервера приложений.
Отображение повторяющихся XML-элементов
Объект XSLT «Повторяющаяся область» позволяет отображать повторяющиеся элементы из источника данных XML на веб-странице.Например, если вы отображаете заголовки и описания статей из новостной ленты, и эта лента содержит от 10 до 20 статей, каждый заголовок и описание в файле XML, вероятно, будут дочерними элементами повторяющегося элемента.
Любая область в режиме разработки, содержащая заполнитель данных XML, может быть изменена на повторяющуюся область.Однако наиболее распространенными областями являются таблицы, строки таблиц или серии строк таблиц.
Выделение может быть чем угодно, включая таблицу, строку таблицы или даже абзац текста.
Точно выбрать область на странице можно с помощью селектора тегов в левом нижнем углу окна документа. Например, если область является таблицей, щелкните внутри таблицы на странице, затем щелкните тег в селекторе тегов.
Выберите Вставка > Объекты XSLT > Повторяющаяся область.
В категории XSLT панели «Вставка» нажмите кнопку «Повторяющаяся область».
В окне Document вокруг повторяющейся области появляется тонкий серый контур с вкладками.При просмотре вашей работы в браузере (Файл > Просмотр в браузере) серый контур исчезает, а выделение расширяется для отображения указанных повторяющихся элементов в файле XML.
Когда вы добавляете объект XSLT «Повторяющаяся область» на страницу, заполнитель данных XML в окне документа обрезается.Это происходит потому, что Dreamweaver обрезает XPath для заполнителя данных XML так, чтобы он был относительным к пути повторяющегося элемента.
Настройка свойств повторяющейся области (XSL)
В инспекторе свойств вы можете выбрать другой узел XML для создания повторяющейся области.
Редактирование XSLT-объекта «Повторяющаяся область»
После добавления объекта XSLT «Повторяющаяся область» в область вы можете редактировать его с помощью инспектора свойств.
Вставка фрагментов XSLT в динамические страницы
После создания фрагмента XSLT вы можете вставить его в динамическую веб-страницу, используя поведение сервера XSL Transformation.Когда вы добавляете поведение сервера на страницу и просматриваете страницу в браузере, сервер приложений выполняет преобразование, которое отображает данные XML из выбранного фрагмента XSLT.Dreamweaver поддерживает XSL-преобразования для страниц ColdFusion, ASP или PHP.
Если нужно вставить на динамическую страницу содержимое целой XSLT-страницы, процедура будет точно такой же. Прежде чем использовать поведение сервера «XSL-преобразование» для вставки целой XSLT-страницы, удалите с динамической страницы весь HTML-код.
При вставке XSLT-фрагментов всегда следует нажимать кнопку «Показать представление "Код" и "Дизайн"» после помещения курсора вставки на страницу. Это позволяет убедиться, что курсор вставки указывает верное расположение. Если расположение неверное, щелкните в другом месте в представлении «Код», чтобы поместить курсор вставки в нужное место.
Dreamweaver заполняет следующее текстовое поле путем к файлу или URL XML-файла, который прикреплен к указанному фрагменту. Чтобы изменить его, нажмите кнопку «Обзор» и перейдите к другому файлу.
Также создается папка includes/MM_XSLTransform/ в корневой папке сайта, содержащая файл библиотеки времени выполнения. Сервер приложений использует функции, определенные в этом файле, для выполнения преобразования.
Удаление фрагментов XSLT из динамических страниц
Вы можете удалить фрагмент XSLT со страницы, удалив поведение сервера «XSL-преобразование», используемое для вставки фрагмента. Удаление поведения сервера удаляет только фрагмент XSLT — оно не удаляет связанные файлы XML, XSLT или библиотеки времени выполнения.
Варианты поведения сервера всегда следует удалять именно таким образом. При ручном удалении созданного кода поведение сервера удаляется не полностью, даже если оно исчезает с панели «Поведение сервера».
Редактирование поведения сервера XSL-преобразований
После добавления фрагмента XSLT на динамическую веб-страницу вы можете редактировать поведение сервера «XSL-преобразование» в любое время.
Создание динамической ссылки
Вы можете создать динамическую ссылку на вашей XSLT-странице, которая ведет к определенному URL, когда пользователь нажимает указанное слово или группу слов из ваших XML-данных. Полные инструкции см. в исправлениях Dreamweaver по адресу www.adobe.com/go/dw_documentation.
Применение стилей к XSLT-фрагментам
Когда вы создаете полную XSLT-страницу (то есть XSLT-страницу, содержащую теги <body> и <head>), вы можете отображать XML-данные на странице, а затем форматировать данные как любой другой фрагмент контента, используя инспектор свойств или панель "Стили CSS". Однако когда вы создаете фрагмент XSLT для вставки в динамическую страницу (например, фрагмент для вставки в страницу ASP, PHP или Cold Fusion), рендеринг стилей во фрагменте и в динамической странице становится более сложным. Хотя вы работаете над фрагментом XSLT отдельно от динамической страницы, важно помнить, что фрагмент предназначен для использования внутри динамической страницы, и что вывод из фрагмента XSLT в конечном итоге располагается где-то внутри тегов <body> динамической страницы. Учитывая данный технологический процесс, важно убедиться, что вы не включаете элементы <head> (такие как определения стилей или ссылки на внешние таблицы стилей) во фрагменты XSLT. Это приведет к тому, что сервер приложений поместит эти элементы в <body> динамической страницы, тем самым создав недопустимую разметку.
Например, вы можете захотеть cоздать фрагмент XSLT для вставки в динамическую страницу и отформатировать фрагмент, используя ту же внешнюю таблицу стилей, что и для динамической страницы. Если вы прикрепите ту же таблицу стилей к фрагменту, итоговая HTML-страница будет содержать дублированную ссылку на таблицу стилей (одну в разделе <head> динамической страницы и другую в разделе <body> страницы, где появляется содержимое фрагмента XSLT). Вместо такого подхода следует использовать таблицы стилей времени разработки для обращения к внешней таблице стилей.
При форматировании содержимого фрагментов XSLT используйте следующий технологический процесс:
Сначала присоедините внешнюю таблицу стилей к динамической странице. (Это лучший способ применения стилей к содержимому любой веб-страницы.)
Затем присоедините внешнюю таблицу стилей к XSLT-фрагменту в качестве таблицы стилей времени разработки. Как следует из названия, таблицы стилей времени разработки работают только в представлении «Дизайн» Dreamweaver.
По завершении 2 предыдущих шагов можно создать новые стили в своем XSLT-фрагменте с помощью той же таблицы стилей, которая была присоединена к динамической странице. Выходные данные HTML будут чище (поскольку ссылка на таблицу стилей будет действительна только при работе в Dreamweaver), и фрагмент будет отображать нужные стили в представлении «Дизайн». Кроме того, при просмотре динамической страницы в представлении «Дизайн» или браузере все стили будут применяться как к фрагменту, так и к динамической странице.
При просмотре XSLT-фрагмента в браузере браузер не отображает стили. Чтобы увидеть XSLT-фрагмент в контексте динамической страницы, следует просмотреть динамическую страницу в браузере.
Использование параметров XSL-преобразований
Вы можете определить параметры для вашего XSL-преобразования при добавлении поведения сервера XSL Transformation на веб-страницу. Параметр контролирует, как обрабатываются и отображаются XML-данные. Например, вы можете использовать параметр для идентификации и вывода конкретной статьи из новостной ленты. Когда страница загружается в браузере, появляется только статья, которую вы указали с помощью параметра.
Добавьте параметр XSLT в XSL- преобразование
Если вы хотите использовать статическое значение, введите его в поле «Значение».
Если вы хотите использовать динамическое значение, нажмите значок динамических данных рядом с полем «Значение», заполните диалоговое окно «Динамические данные» и нажмите «ОК».Для получения дополнительной информации нажмите кнопку «Справка» в диалоговом окне «Динамические данные».
Редактирование параметра XSLT
Удаление параметра XSLT
Создание и редактирование условных областей XSLT
Вы можете создать простые условные области или несколько условных областей на странице XSLT.Вы можете выбрать элемент в представлении «Дизайн» и применить условную область к выделенному фрагменту или вставить условную область в любом месте документа, где находится точка вставки.
Например, если вы хотите отобразить слово «Недоступно» рядом с ценой товара, когда товар недоступен, введите текст «Недоступно» на странице, выберите его, а затем примените условную область к выделенному тексту. Dreamweaver окружает выбранное содержимое тегами <xsl:if> и отображает только слово «Недоступно» на странице, когда данные соответствуют условиям условного выражения.
Применение условной XSLT-области
Вы можете написать простое условное выражение для вставки на вашу XSLT-страницу. Если контент выбран при открытии диалогового окна «Условная область», контент будет заключен в блок <xsl:if>. Если контент не выбран, блок <xsl:if> добавляется в точку вставки на странице. Рекомендуется использовать диалоговое окно для начала работы, а затем настроить выражение в представлении «Код».
Элемент <xsl:if> похож на оператор if в других языках. Элемент предоставляет способ проверить условие и выбрать действие на основе результата. Элемент <xsl:if> позволяет проверить выражение на одно из двух булевых значений: true или false.
В следующем примере вы хотите проверить, является ли значение атрибута @available контекстного узла true.
На XSLT-страницу вставляется следующий код.
<xsl:if test="@available='true'">
Здесь располагается содержимое
</xsl:if>
Строковые значения, такие как true, следует заключать в кавычки. Dreamweaver кодирует кавычки за вас ('), чтобы они вводились как валидный XHTML.
Кроме проверки узлов на значения, вы можете использовать любые из поддерживаемых функций XSLT в любом условном операторе. Это условие проверяется для текущего узла в XML-файле. В следующем примере вы хотите выполнить проверку последнего узла в наборе результатов:
Дополнительную информацию и примеры написания условных выражений см. в разделе <xsl:if> на панели «Справка» («Справка» > «Справочные материалы»).
Применение нескольких условных XSLT- областей
Вы можете написать простое условное выражение для вставки на вашу XSLT-страницу. Если контент выбран при открытии диалогового окна «Условная область», контент заключается в блок <xsl:choose>. Если вы не выбираете контент, блок <xsl:choose> добавляется в точку вставки на странице. Рекомендуется использовать диалоговое окно для начала работы, а затем настроить выражение в представлении «Код».
Элемент <xsl:choose> похож на оператор case в других языках. Элемент предоставляет способ проверить условие и выбрать действие на основе результата. Элемент <xsl:choose> позволяет проверить множественные условия.
В следующем примере необходимо проверить, меньше ли 5 подэлемент price контекстного узла.
В примере в вашу XSLT-страницу вставляется следующий код:
<xsl:choose>
<xsl:when test="price<5">
Здесь располагается содержимое
</xsl:when>
<xsl:otherwise>
Здесь располагается содержимое
</xsl:otherwise>
</xsl:choose>
После указания условия и нажатия кнопки «ОК» в блок <xsl:choose> вставляется другой тег <xsl:when>.
Дополнительные сведения и примеры написания условных выражений см. в разделах <xsl:choose> панели «Справочник» («Справка» > «Справочник»).
Установка свойств условной области (If)
Инспектор свойств «Задать условную область» предназначен для изменения условия, используемого в условной области XSL-страницы. Условная область проверяет условие и выполняет действие на основе результата.
Установка условных свойств (When)
Инспектор свойств «Задать условную область» предназначен для изменения условия, используемого в области с несколькими условиями XSL-страницы. Область с несколькими условиями проверяет условие и выполняет действие на основе результата.
Вставка XSL-комментариев
Можно добавлять теги комментариев XSL в документ или заключать выделенный фрагмент в теги комментариев XSL.
Добавление XSL-комментариев в документ
В представлении «Дизайн» выберите «Вставка» > «Объекты XSLT» > «Комментарий XSL», введите содержимое комментария (или оставьте поле пустым) и нажмите кнопку «ОК».
В представлении «Код» выберите «Вставка» > «Объекты XSLT» > «Комментарий XSL».
Можно также нажать значок «Комментарий XSL» в категории XSLT панели «Вставка».
Заключить выделенный фрагмент в теги комментариев XSL
Используйте конструктор выражений XPath для добавления выражений для данных XML
XPath (XML Path Language) — это синтаксис, отличный от XML, для адресации частей документа XML. Он используется в основном как язык запросов для данных XML, так же как язык SQL используется для запросов к базам данных. Дополнительные сведения о XPath см. в спецификации языка XPath на веб-сайте W3C по адресу www.w3.org/TR/xpath.
Конструктор выражений XPath — это функция Dreamweaver, которая позволяет создавать простые выражения XPath для идентификации конкретных узлов данных и для повторяющихся областей. Преимуществом использования этого метода вместо перетаскивания значений из дерева схемы XML является то, что можно форматировать отображаемое значение. Текущий контекст определяется на основе позиции точки вставки в файле XSL при открытии диалогового окна конструктора выражений XPath. В дереве XML-схемы текущий контекст выделен полужирным шрифтом. При выборе элементов в этом диалоговом окне создаются правильные инструкции XPath относительно текущего контекста. Это упрощает процесс написания правильных выражений XPath для начинающих и опытных пользователей.
Эта возможность призвана облегчить написание простых выражений XPath для идентификации конкретных узлов и повторяющихся областей. Она не позволяет редактировать выражения вручную. Если требуется создать сложное выражение, используйте построитель выражений XPath в начале работы, а затем настраивайте выражения в представлении «Код» или с помощью инспектора свойств.
Создайте выражение XPath для идентификации конкретного узла
Правильное выражение XPath записывается в поле «Выражение» для идентификации узла.
При выборе другого узла в дереве схемы XML выражение изменяется в соответствии с вашим выбором.
В следующем примере требуется отобразить подэлемент price узла item:
Этот выбор вставит следующий код на вашу страницу XSLT:
<xsl:value-of select="price"/>
Форматирование выделения полезно, когда значение вашего узла возвращает число. Dreamweaver предоставляет предопределенный список функций форматирования. Полный список доступных функций форматирования и примеры см. на панели «Справка».
В следующем примере требуется форматировать подэлемент price как валюту с двумя знаками после запятой:
Эти параметры вставят следующий код на вашу страницу XSLT:<xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
Дополнительные сведения и примеры выбора узлов для возврата значения см. в разделе <xsl:value-of/> на панели Reference.
Выбор узла для повторения
Можно выбрать узел для повторения и, при необходимости, отфильтровать результаты. В диалоговом окне XPath Expression Builder ваше выбранное содержимое будет заключено в блок <xsl:for-each>. Если вы не выбрали содержимое, блок <xsl:for-each> будет вставлен в месте расположения курсора.
В поле Expression записывается правильное выражение XPath для идентификации узла.
Повторяющиеся элементы обозначаются символом «плюс» (+) в дереве схемы XML.
В следующем примере требуется повторить каждый узел item в файле XML.
При нажатии кнопки OK следующий код вставляется в страницу XSLT:
<xsl:for-each select="provider/store/items/item">
Здесь располагается содержимое
</xsl:for-each>
В некоторых случаях может потребоваться работа с подмножеством повторяющихся узлов — например, нужны только те элементы, атрибуты которых имеют определенное значение. В этом случае необходимо создать фильтр.
Фильтрация повторяющихся данных
Используйте фильтр для определения повторяющихся узлов, которые имеют определенные значения атрибутов.
Фильтровать по
Укажите повторяющийся узел, содержащий данные, по которым требуется выполнить фильтрацию.Всплывающее меню содержит список узлов-предков относительно узла, выбранного в дереве схемы XML.
Где
Задает атрибут или подэлемент узла Filter By, который будет использоваться для ограничения результатов. Вы можете выбрать атрибут или подэлемент из всплывающего меню или ввести собственное выражение XPath в данное поле для идентификации дочерних элементов, которые находятся глубже в дереве схемы.
Оператор
Задает оператор сравнения для использования в выражении фильтра.
Значение
Указывает значение для проверки в узле «Фильтровать по». Введите значение Если для страницы XSLT определены динамические параметры, можно выбрать один из них во всплывающем меню.
При вводе значений или выборе во всплывающих меню выражение XPath в поле Expression изменяется.
В следующем примере требуется ограничить набор результатов узлами item, где значение атрибута @available равно true.
При нажатии кнопки «ОК» в страницу XSLT вставляется следующий код:<xsl:for-each select="provider/store/items/item[@available = 'true']"> Content goes here </xsl:for-each>
Строковые значения, такие как true, следует заключать в кавычки. Dreamweaver кодирует кавычки за вас ('), чтобы они вводились как действительный XHTML.
Вы можете cоздать более сложные фильтры, которые позволят вам указать узлы шаблона как часть критериев фильтра. В следующем примере вы хотите ограничить набор результатов теми узлами item, где атрибут @id узла store равен 1, а узел price узла item больше 5.
Когда вы нажимаете «ОК», следующий код вставляется на вашу XSLT-страницу:<xsl:for-each select="provider/store[@id = 1]/items/item[price > 5]"> Content goes here </xsl:for-each>
Для получения дополнительных сведений и примеров повторяющихся областей см. раздел <xsl:for-each> в панели «Справочник».
Связанные материалы
- Работа с сайтами Dreamweaver
- Выбор сервера приложений
- Применение XML и XSL на веб-страницах
- XSL-преобразование на стороне клиента
- XSL-преобразование на сервере
- Предварительный просмотр XML-данных
- Представление содержимого в таблицах
- XML-данные и повторяющиеся элементы
- Применение таблиц стилей времени разработки
Создание красивых веб-сайтов в Dreamweaver
Создавайте дизайн, пишите код и управляйте динамическими веб-сайтами с помощью многофункционального инструмента.