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

на главную

Жанры

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

Шрифт:

</H1>

Mercury is 7 characters long.

<BR>

Venus is 5 characters long.

<BR>

Earth is 5 characters long.

<BR>

 </BODY>

</HTML>

Этот результирующий документ показан на рис. 8.2.

Рис. 8.2.

Определение длины строк в XSLT

substring

Функция

substring
возвращает подстроку переданной ей строки. Функция применяется следующим образом:

string substring(source-string, start-position, number-of-characters?)

Функция принимает параметры

source-string
(исходная строка),
start-position
(начальная позиция) и необязательный параметр
number-of-characters
(количество символов). Функция возвращает подстроку исходной строки с начальной позиции и до указанного количества символов или до конца строки, если это количество не задано.

Функция

substring
— одна из трех функций, оперирующих с подстроками:
substring-before
, возвращающая строку перед найденной подстрокой, сама
substring
, возвращающая заданную подстроку, и
substring-after
, возвращающая строку после найденной подстроки. В следующем примере (листинг 8.9) задействованы все три функции: в этом случае я разбил название планеты Меркурий (Mercury) на три подстроки — «Mer», «c» и «ury» — и затем объединил их снова. Вот как это можно сделать при помощи трех рассматриваемых функций (дополнительная информация о
substring-before
и
substring-after
приведена в следующих двух разделах).

Листинг 8.9. Применение функций substring-before, substring и substring-after

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

Planetary Information

</TITLE>

</HEAD>

<BODY>

<H1>

Planetary Information

</H1>

<xsl:apply-templates/>

</BODY>

</HTML>

 </xsl:template>

 <xsl:template match="PLANET">

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

The first planet is

<xsl:value-of select="concat(substring-before(NAME, 'с'),

substring(NAME, 4, 1), substring-after(NAME, 'c'))"/>.

<BR/>

</xsl:if>

 </xsl:template>

 <xsl:template match="*">

 </xsl:template>

</xsl:stylesheet>

Вот

результирующий документ, созданный этим преобразованием:

<HTML>

 <HEAD>

<TITLE>

Planetary Information

</TITLE>

 </HEAD>

 <BODY>

<H1>

Planetary Information

</H1>

The first planet is Mercury.

<BR>

 </BODY>

</HTML>

substring-after

Функция

substring-after
возвращает подстроку, которая следует за найденной строкой. В эту функцию передается строка, подстрока, которую нужно найти внутри строки, — и функция возвращает подстроку, расположенную после совпадающей части строки, если она была найдена; иначе функция возвращает пустую строку. Функция применяется следующим образом:

string substring-after(string, string-to-match)

substring-before

В функцию

substring-before
передается строка, подстрока, которую нужно найти внутри строки, и функция возвращает подстроку, расположенную перед совпадающей частью строки, если она была найдена; иначе функция возвращает пустую строку. Функция применяется следующим образом:

string substring-before(string, string-to-match)

В разделе

substring
приведен пример применения функций
substring-before
,
substring
и
substring-after
.

translate

Функция

translate
служит для перевода или замены определенных символов. (Эта функция во многом похожа на операцию tr в Perl, если вы знакомы с операциями.) В функцию передаются две строки: одна задает список символов поиска, вторая задает список символов, которыми нужно заменить найденные символы. Функция применяется следующим образом:

string translate(string, from-characters, to-characters)

Например, если третий символ из

from-characters
будет найден в
string
, то третий символ из
to-characters
заменит его в результирующей строке. В следующем примере такая функция
translate

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

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Столичный доктор. Том III

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

Король Руси

Ланцов Михаил Алексеевич
2. Иван Московский
Фантастика:
альтернативная история
6.25
рейтинг книги
Король Руси

Измена. Жизнь заново

Верди Алиса
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Жизнь заново

Идеальный мир для Лекаря 17

Сапфир Олег
17. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 17

Эйгор. В потёмках

Кронос Александр
1. Эйгор
Фантастика:
боевая фантастика
7.00
рейтинг книги
Эйгор. В потёмках

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Дракон

Бубела Олег Николаевич
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Дракон

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Боярышня Дуняша

Меллер Юлия Викторовна
1. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Дуняша

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца