Простая таблица / XML-XSLT
Первый шаг - это, как всегда, добавление шаблона преобразования. Модифицируем наш файл, добавив в него ссылку на шаблон. В результате получим файл ex03-1.xml.
В этот файл добавлен шаблон преобразования ex03-1.xsl.
Рассмотрим этот шаблон подробнее. Вот его текст.
<?xml version="1.0" encoding="WINDOWS-1251" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <table border="1"> <tr bgcolor="#CCCCCC"> <td align="center"><strong>Кличка</strong></td> <td align="center"><strong>Вес</strong></td> <td align="center"><strong>Цвет</strong></td> </tr> <xsl:for-each select="tutorial/enimals/dogs/dog"> <tr bgcolor="#F5F5F5"> <td><xsl:value-of select="dogName"/></td> <td align="right"><xsl:value-of select="dogWeight"/> <xsl:value-of select="dogWeight/@caption"/></td> <td><xsl:value-of select="dogColor"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>
Первая строка - новая для вас в XSL-файле (но не в XML-файлах!). Она говорит о том, что в XSL-файле нужно нормально воспринимать русские буквы. Без этой строки браузер не сможет корректно обработать русский текст в XSL-файле. Следующие две строки шаблона являются уже привычными. Следующие шесть строк - это строка, содержащая заголовки столбцов таблицы. Конструкция для извлечения текста заголовков таблицы вам уже знакома. А вот десятая строка тоже является новой:
<xsl:for-each select="tutorial/enimals/dogs/dog">
Этот элемент шаблона позволяет выбрать и просмотреть все группы информации, полный путь к которым задается списком тегов "tutorial/enimals/dogs/dog". Обратите внимание - путь задается полностью, ни один из тегов опустить нельзя. Далее в ячейки таблицы помещается информация о наших собаках. В отличие от первых примеров путь к соответствующей информации тоже задается полностью. Попробуем, например, разместить информацию о кличке чуть-чуть иначе ex03-2.xml:
<dogName> <dogNick>Шарик</dogNick> </dogName>
Если мы в соответствующем XSL-файле поставим ссылку <xsl:value-of select="dogNick"/>, то в соответствующем столбце никакой клички мы не увидим. Ссылка должна быть полной - <xsl:value-of select="dogName/dogNick"/>. Вы можете самостоятельно поэкспериментировать с файлом ex03-2.xsl. Правильный результат приведен ниже.
Кличка | Вес | Цвет |
Шарик | 18 кг | рыжий с черными подпалинами |
Тузик | 10 кг | белый с черными пятнами |
Бобик | 2 кг | бело-серый |
Трезор | 25 кг | черный |