Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

<DISTANCE UNITS="million miles">128.4</DISTANCE><!--В перигелии-->

 </PLANET>

</PLANETS>

Предположим теперь, что вам нужно выбрать определенную планету, например, Венеру (Venus). Такая проверка не пройдет, потому что

NAME
вернет набор узлов из всех дочерних элементов
<NAME>
контекстного узла, а так как у каждой планеты есть элемент
<NAME>
со значением «Venus», такое условие всегда будет истиной:

<xsl:template match="PLANET">

 <xsl:if test="NAME='Venus'">

<TR>

<TD><xsl:value-of 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:if>

</xsl:template>

Для того чтобы проверить первый элемент

<NAME>
в каждом элементе
<PLANET>
, можно воспользоваться функцией
string
, поскольку она возвращает не набор узлов, а строку:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

<HTML>

.

.

.

</HTML>

 </xsl:template>

 <xsl:template match="PLANET">

<xsl:if test="string(NAME)='Venus'">

<TR>

<TD><xsl:value-of 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:if>

 </xsl:template>

 <xsl:template match="MASS">

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

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

 .

 .

 .

 <xsl:template match="DAY">

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

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

Конечно, если нужно только выбрать первый дочерний элемент

<NAME>
контекстного узла, проще воспользоваться
NAME[1]
.

string-length

Как можно предположить, функция

string-length
возвращает длину (length) переданной ей строки. Функция применяется таким образом:

number string-length(string?)

В следующем примере я определяю длину названия каждой планеты при помощи

string-length
:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

Length of Planet Names

</TITLE>

</HEAD>

<BODY>

<H1>

Length of Planet Names

</H1>

<xsl:apply-templates/>

  • Читать дальше
  • 1
  • ...
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: