Книга: XSLT
Применение оси self
Применение оси self
Ось self
содержит только контекстный узел. В соответствии с одним из сокращений XPath, как мы увидим дальше, вместо «self::node()
» можно использовать «.».
Эту ось полезно иметь в виду, поскольку, как вы помните из главы 4, если не задать ось, осью по умолчанию будет child::
, а в некоторых случаях вам может понадобиться обратиться к действующему узлу. Например, [self::PLANET]
примет значение истины только если контекстным узлом будет элемент <PLANET>
.
В следующем примере я объединяю шаблоны для элементов <NAME>
и <MASS>
в один шаблон. Поскольку у этих элементов разный формат, я должен обращаться с ними по-разному внутри одного и того же шаблона (что можно сделать проверкой значений оси self::NAME
, которая возвращает непустой набор узлов, если контекстным, узлом является элемент <NAME>
, и self::MASS
, возвращающей непустой набор узлов, если контекстным узлом является элемент <MASS>
):
<xsl:template match="PLANET">
<TR>
<TD><xsl:apply-templates 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="NAME | MASS">
<xsl:if test="self::NAME">
<xsl:value-of select="."/>
</xsl:if>
<xsl:if test="self::MASS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:if>
</xsl:template>
.
.
.
На этом мы завершаем рассмотрение новых осей XPath. Давайте перейдем к примерам.
- Изучаем 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