>
Earth
1
1
2107
1
128.4
Earth
1
1
2107
1
128.4
С другой стороны, при использовании оси
following-sibling
в результирующий документ будут скопированы только следующие братья, то есть только элементы
, как мы увидим в следующем разделе.Применение оси following-sibling
Ось
following-sibling
содержит всех последующих братьев контекстного узла.Например, я могу выбрать каждый элемент
и скопировать в результирующий документ все узлы в оси following-sibling
следующим образом (листинг 7.9).Листинг 7.9. Применение оси following-sibling
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
При этом сначала копируются два узла-брата, следующие за Меркурием (Венера и Земля), затем копируется следующий узел-брат Венеры, Земля. У самой Земли нет следующих за ней братьев, поэтому результат выглядит так:
Venus
.815
116.75
3716
.943
66.8
Earth
1
1
2107
1
128.4
Earth
1
1
2107
1
128.4
Применение оси namespace
Ось
namespace
содержит узлы пространств имен контекстного узла. Заметьте, что эта ось пуста, если контекстным узлом не является элемент. У элемента присутствует узел пространства имен для:• каждого атрибута элемента, чье имя начинается с «xmlns:»;
• каждого атрибута элемента-предка, чье имя начинается с «xmlns:» (конечно, если сам элемент или ближайший предок не объявит пространство имен заново);
• атрибута
xmlns
, если элемент или предок имеет атрибут xmlns
.В следующем примере (листинг 7.10) я хочу отобразить пространство имен элемента
в результирующем документе, и в исходном документе я присвоил пространству имен значение «http://www.starpowder.com».Листинг 7.10. planets.xml с объявлением пространства имен
Mercury
.0553
58.65
1516
.983
43.4
.
.
.
Вот таблица стилей (листинг 7.11), в которой я проверяю пространства имен, используемые в элементе
.Листинг 7.11. Применение оси namespace в planets.xml
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
А вот результирующий документ (заметьте, что вид документа может меняться в зависимости от процессора XSLT):
http://www.starpowder.com
Применение оси parent
Ось parent (родитель) содержит родителя (и только родителя) контекстного узла, если таковой имеется.
Предположим, что я хочу изменить содержимое элемента Земли
на «The mass of Earth is set to 1.>> (Масса Земли принимается за 1). В следующем шаблоне (листинг 7.12) для этого проверяется, содержит ли родитель
элемента
элемент
со строковым значением «Earth».Листинг 7.12. Применение оси parent
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The mass of Earth is set to 1.
И вот результат:
Mercury
.0553
58.65
1516
.983
43.4