Книга: XSLT
Применение оси namespace
Разделы на этой странице:
Применение оси namespace
Ось namespace
содержит узлы пространств имен контекстного узла. Заметьте, что эта ось пуста, если контекстным узлом не является элемент. У элемента присутствует узел пространства имен для:
• каждого атрибута элемента, чье имя начинается с «xmlns:»;
• каждого атрибута элемента-предка, чье имя начинается с «xmlns:» (конечно, если сам элемент или ближайший предок не объявит пространство имен заново);
• атрибута xmlns
, если элемент или предок имеет атрибут xmlns
.
В следующем примере (листинг 7.10) я хочу отобразить пространство имен элемента <PLANET>
в результирующем документе, и в исходном документе я присвоил пространству имен значение «http://www.starpowder.com».
Листинг 7.10. planets.xml с объявлением пространства имен
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS xmlns="http://www.starpowder.com">
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.0553</MASS>
<DAY UNITS="days">58.65</DAY>
<RADIUS UNITS="miles">1516</RADIUS>
<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
<DISTANCE UNITS="million miles">43.4</DISTANCE><!--В перигелии-->
</PLANET>
.
.
.
Вот таблица стилей (листинг 7.11), в которой я проверяю пространства имен, используемые в элементе <PLANETS>
.
Листинг 7.11. Применение оси namespace в planets.xml
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="PLANETS">
<xsl:value-of select="namespace::*"/>
</xsl:template>
</xsl:stylesheet>
А вот результирующий документ (заметьте, что вид документа может меняться в зависимости от процессора XSLT):
<?xml version="1.0" encoding="UTF-8"?>
http://www.starpowder.com
- Изучаем XPath
- Типы данных XPath
- Создание путей расположения XPath
- Шаги расположения XPath, часть 1: оси
- Шаги расположения XPath, часть 2: условия узлов
- Шаги расположения XPath, часть 3: предикаты
- Применение осей XPath
- Применение оси ancestor
- Применение оси ancestor-or-self
- Применение оси descendant
- Применение оси descendant-or-self
- Применение оси following
- Применение оси following-sibling
- Применение оси namespace
- Применение оси parent
- Применение оси preceding
- Применение оси preceding-sibling
- Применение оси self
- Примеры путей расположения
- Сокращенный синтаксис XPath
- Проверка выражений XPath
- XPath 2.0
- Применение оси ancestor
- «Вещи» как носители корпоративных стандартов
- О чем просить?
- Внешние носители информации
- Часть III Восстановление поврежденных носителей резервных копий
- namespace-uri()
- Как переносить данные через USB-брелок («флэшку»)?
- Применение функции scanf( )
- Наносится ли какой-нибудь вред USB-брелоку, когда его извлекают из разъема без использования функции безопасного отключе...
- Применение PHP-технологий в программе HtmlPad
- Система просит вставить диск Windows XP и Windows XP Service Pack 2 CD. Но ведь диск с дистрибутивом Windows у меня один...
- 17.6 Применение агентов новостей для настольных систем