Применение оси ancestor

We use cookies. Read the Privacy and Cookie Policy

Применение оси ancestor

Ось ancestor (предок) содержит всех предков контекстного узла, включая родителей, дедушек, прадедушек и т.д. Эта ось всегда содержит корневой узел — если только контекстным узлом не является сам корневой узел.

Взгляните на листинг 7.3, в котором при помощи оси ancestor осуществляется поиск имен (хранимых в элементе <NAME>) всех предков элементов <MASS>.

Листинг 7.3. Применение оси ancestor

<?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="MASS">

  <xsl:for-each select="ancestor::*">

   <xsl:value-of select="./NAME"/>

  </xsl:for-each>

 </xsl:template>

 <xsl:template match="PLANET">

  <xsl:apply-templates select="MASS"/>

 </xsl:template>

</xsl:stylesheet>

Вот результат применения этой таблицы стилей к planets.xml:

<?xml version="1.0" encoding="utf-8"?>

Mercury

Venus

Earth