Чтение онлайн

на главную - закладки

Жанры

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

Шрифт:

<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/>

</BODY>

</HTML>

 </xsl:template>

 <xsl:template match="PLANET">

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

<xsl:value-of select-"string-length(NAME)"/>

characters long.

<BR/>

 </xsl:template>

 <xsl:template match="*">

 </xsl:template>

</xsl:stylesheet>

А вот результат:

<HTML>

 <HEAD>

<TITLE>

Length of Planet Names

</TITLE>

 </HEAD>

 <BODY>

<H1>

Length of Planet Names

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

Лейтенант. Часть 2. Назад в СССР

Гаусс Максим
9. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Лейтенант. Часть 2. Назад в СССР

И.Бабель. Воспоминания современников

Паустовский Константин Георгиевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
И.Бабель. Воспоминания современников

Прайм. Хомори

Бор Жорж
2. Легенда
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Прайм. Хомори

Вернувшийся: Первые шаги. Том II

Vector
2. Вернувшийся
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Первые шаги. Том II

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Ко времени моих слёз

Головачев Василий Васильевич
Фантастика:
боевая фантастика
5.25
рейтинг книги
Ко времени моих слёз

Царь царей

Билик Дмитрий Александрович
9. Бедовый
Фантастика:
фэнтези
мистика
5.00
рейтинг книги
Царь царей

Травник

Назимов Константин Геннадьевич
1. Травник
Фантастика:
фэнтези
5.00
рейтинг книги
Травник

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Газлайтер. Том 19

Володин Григорий Григорьевич
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Страж Кодекса. Книга VII

Романов Илья Николаевич
7. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга VII

Седьмая встреча

Вассму Хербьёрг
Проза:
современная проза
4.00
рейтинг книги
Седьмая встреча