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

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

Шрифт:

Функция

position
возвращает позицию контекстного узла:

number position

С этой функцией мы встречались на протяжении всей книги. Такой пример вы уже видели раньше в этой главе, в нем для создания предложения «The first three planets are: Mercury, Venus, and Earth.» используются функции

last
и
position
:

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

<DOCUMENT>

<TITLE>

The Planets

</TITLE>

<PLANETS>

The first three planets are:

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

</PLANETS>

</DOCUMENT>

 </xsl:template>

 <xsl:template match="PLANET">

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

<xsl:if test="position!=last">, </xsl:if>

<xsl:if test="position=last-1">and </xsl:if>

<xsl:if test="position=last">.</xsl:if>

 </xsl:template>

</xsl:stylesheet>

Полученный результат:

<?xml:version="1.0" encoding="UTF-8"?>

<DOCUMENT>

 <TITLE>

The Planets

 </TITLE>

 <PLANETS>

The first three planets are: Mercury, Venus, and Earth.

 </PLANETS>

</DOCUMENT>

Функции XPath для работы со строками

В XSLT доступны следующие функции XPath для работы со строками:

• 

concat(string string1, string string2,...)
. Возвращает конкатенацию (объединение) всех переданных ей строк;

• 

contains(string string1, string string2)
. Возвращает истину, если первая строка содержит (contains) вторую строку;

• 

normalize-space(string string1)
. Возвращает строку
string1
(или контекстный узел, если строки
string1
нет) после отбрасывания лидирующих и завершающих символов-разделителей и замены нескольких последовательных разделителей на один пробел;

• 

starts-with(string string1, string string2)
. Возвращает истину, если первая строка начинается (starts with) со второй подстроки;

• 

string(object)
. Преобразует объект в строку;

• 

string-length(string string1)
. Возвращает количество символов в строке
string1
;

• 

substring(string string1, number offset, number length)
. Возвращает
length
символов из строки, начиная со смещения
offset
;

• 

substring-after(string string1, string string2)
. Возвращает часть строки
string1
после первого вхождения
string2
;

• 

substring-before(string string1, string string2)
. Возвращает часть строки
string1
вплоть до первого вхождения строки
string2
;

• 

translate(string string1, string string2, string string3)
. Возвращает строку
string1
, в которой все вхождения символов в строке
string2
заменены на соответствующие символы в строке
string3
;

В последующих разделах я рассмотрю каждую из этих функций.

concat

Функция

concat
объединяет вместе все переданные ей строки и возвращает полученную строку:

concat(string string1, string string2, ...)

В качестве примера рассмотрите разработанный ранее вариант таблицы стилей

planets.xsl
, отображающей значения элементов и значения атрибутов
UNITS
, в котором шаблоны применяются следующим образом:

  • Читать дальше
  • 1
  • ...
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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