Практикум 3.3. Язык XPath в действии

Практикум 3.3. Язык XPath в действии - student2.ru
Рассмотрим XML-документ pr_3_3.xml:

Теперь давайте попробуем выделить некоторые части этого XML-документа и сформировать новый HTML-документ, содержащий эти части.

1. Наберите в блокноте код из примера pr_3_3.xml

2.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Создайте следующую таблицу стилей pr_3_3.xsl:

В данной таблице я использовал функцию XSLT (name) и инструкцию <xsl:text>.

Функция «name ()» используется для получения имени узла. Инструкция <xsl:text> используется для воспроизведения текста в текущем месте вывода.

3. Практикум 3.3. Язык XPath в действии - student2.ru
Преобразуйте исходный XML-документ в pr_3_3.html, результат такого преобразования представлен на рис. 3.4.

Рис. 3.4. Выполненный файл pr_3_3.html

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

Практикум 4. Инструкция <xsl:for-each>

Инструкция <xsl:for-each> определяет шаблон, который применяется для каждого узла, выбранного с помощью атрибута select.

1.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Используя пример pr_3_3.xml, создадим таблицу стилей с инструкцией <xsl:for-each>

В данной таблице используются оператор «//», который говорит процессору XSLT о том, что надо выбрать все элементы с именем «BBB». Использование этого оператора не рекомендуется в больших документах, так как увеличивается время обработки таких документов.

2.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Преобразуйте XML-документ pr_3_3.xml с помощью таблицы pr_3_4.xsl в pr_3_4.html, результат такой обработки показан на рис. 3.5.

Рис. 3.5. Выполненный pr_3_4.html

Практикум 5. Инструкция <xsl:sort>

Инструкция <xsl:sort> используется для сортировки данных, мы рассмотрим возрастающей и убывающей сортировки.

1.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Наберите следующих код в текстовом редакторе и сохраните его под именем pr_3_5.xml.

2.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Используя следующую таблицу pr_3_5_1.xsl отсортируем исходный данные XML-документа по возрастанию, преобразуйте исходный XML-документ в pr_3_5_1.html.

3. Теперь отсортируем наши данные по убыванию, для этого изменим значение атрибута order в инструкции <xsl:sort> на значение «descending», в конце концов получим следующую инструкцию:

<xsl:sort order= «descending» select=”.”/>

4. Сохраните таблицу стилей с новыми изменениями по именем pr_3_5_2.xsl и преобразуйте исходный документ pr_3_5.xml при помощи новой таблицы в pr_3_5_2.html.

5. Практикум 3.3. Язык XPath в действии - student2.ru
Сортировка может проводиться в текстовом режиме (pr_5_3_3.xml, pr_5_3_3.xsl) и цифровом режиме (pr_5_3_3.xml, pr_5_3_4.xsl)

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Pr_5_3_3.xml

Pr_5_3_3.xsl

 
  Практикум 3.3. Язык XPath в действии - student2.ru

pr_3_5_4.xsl

Практикум 6. Инструкция <xsl:if> в действии.

Допустим необходимо проверит начинается ли значение элемента с цифры, если начинается необходимо вывести сообщение в виде «the text starts with a number».

1.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Допустим, существует следующий XML-документ pr_3_6.xml:

2. Практикум 3.3. Язык XPath в действии - student2.ru
Создадим таблицу стилей используя инструкцию <xsl:if>:

3. В данном шаблоне используются функции (start-with, translate).

В общем случае функция start-with(“This is a string”, “This”) определяет, начинается ли строка “This is a string” с текста, который задается второй строкой “This”, если значение верно, то результат действия этой инструкции будет помещен в результирующее дерево, иначе нет.

Функция translate в данном случае действует следующим образом: берется значение элемента и сравнивается с маской «0123456789», если значение совпадает, то оно заменяется на «1» и дальше выполняется функция starts-with. Если первое значение элемента будет не цифра, тогда это значение не будет переведено в «1» и соответственно результатом работы функции start-with будет значение ложь и инструкция <xsl:if> выполнена не будет.

4. Результат полученный после преобразования показан на рис 3.6.

 
  Практикум 3.3. Язык XPath в действии - student2.ru

Рис. 3.6. Результат преобразования инструкцией <xsl:if>

Первый ASP-пример

Наши рекомендации