XSLT | страница 78
Чтение значений атрибутов
Чтобы получить доступ к значению атрибута при помощи XPath, нужно добавить к имени атрибута префикс @, например: ">@src
", ">@height
", ">@width
" и т.д.
Для выбора любого атрибута можно применить выражение ">@*
". Чтобы сослаться на атрибут >UNITS
в каждом элементе >
, >
и >
, следует использовать выражение ">@UNITS
". Следовательно, получить значения и отобразить единицы (unit) каждого измерения в >planets.xml
можно так (листинг 3.3).
>
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>
>
>
> The Planets Table
>
>
>
>
> The Planets Table
>
>
>
Name >
Mass >
Radius >
Day >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Результаты работы показаны на рис. 3.1, Как видите, теперь мы извлекли строковое значение атрибута UNITS и отобразили его.
Рис. 3.1. Вывод значений атрибутов, первый вариант
Рисунок 3.1 не совсем точен: обратите внимание на то, что между значением и соответствующей единицей измерения в таблице нет пробела. Процессор XSLT просто поместил в результирующее дерево текст без каких-либо разделителей между текстовыми узлами. Хотя это в точности соответствует требованиям рекомендации XSLT, нам бы хотелось, чтобы элементы таблицы выглядели как «1516 miles», а не «1516miles». Как нам добавить этот дополнительный пробел?
Элемент
Работа с пробелами всегда обсуждается при рассмотрении XSLT, и в данной главе я уделю этой теме некоторое время. Вставить единственный пробел несложно при помощи элемента >
, который используется для вставки символьного текста непосредственно в дерево вывода. У этого элемента только один атрибут: