Книга: XSLT
Чтение значений атрибутов
Чтение значений атрибутов
Чтобы получить доступ к значению атрибута при помощи XPath, нужно добавить к имени атрибута префикс @, например: "@src
", "@height
", "@width
" и т.д.
Для выбора любого атрибута можно применить выражение "@*
". Чтобы сослаться на атрибут UNITS
в каждом элементе <MASS>
, <RADIUS>
и <DAY>
, следует использовать выражение "@UNITS
". Следовательно, получить значения и отобразить единицы (unit) каждого измерения в planets.xml
можно так (листинг 3.3).
Листинг 3.3. Чтение значений атрибутов
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
<xsl:template match="MASS">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="RADIUS">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="DAY">
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</xsl:template>
</xsl:stylesheet>
Результаты работы показаны на рис. 3.1, Как видите, теперь мы извлекли строковое значение атрибута UNITS и отобразили его.
Рис. 3.1. Вывод значений атрибутов, первый вариант
Рисунок 3.1 не совсем точен: обратите внимание на то, что между значением и соответствующей единицей измерения в таблице нет пробела. Процессор XSLT просто поместил в результирующее дерево текст без каких-либо разделителей между текстовыми узлами. Хотя это в точности соответствует требованиям рекомендации XSLT, нам бы хотелось, чтобы элементы таблицы выглядели как «1516 miles», а не «1516miles». Как нам добавить этот дополнительный пробел?
- Создание шаблона
- Обработка дочерних узлов
- Доступ к значениям узлов
- Создание образцов выбора
- Выбор применяемого шаблона
- Чтение значений атрибутов
- Элемент
- Отключение вывода эскейп-последовательностей
- Написание значений атрибутов
- Шаблоны значений атрибутов
- Обработка символов-разделителей
- Элементы и
- Автоматическое выравнивание
- Правила по умолчанию в шаблоне
- Удаление содержимого
- Разрешение конфликтов шаблонов
- Элемент
- Элемент
- Элемент
- 19.2.4. Чтение и запись значений элементов HTML-форм
- 19.2.5. Чтение и запись содержимого элемента
- 19.2.1. Чтение и запись значений HTML-атрибутов
- 5.3. Чтение каталогов
- Написание значений атрибутов
- 8.3. Нахождение значений в связке ключей
- 19.2.2. Чтение и запись значений CSS-атрибутов
- Множественное присвоение значений:
- 4.4.3. Чтение и запись
- 7. Унификация атрибутов
- Установка значений спин-счетчиков
- У файла и каталога есть атрибуты (например: Скрытый, Только чтение). Как ими управлять из командной строки?