Функция normalize-space (XPath)
Возвращает строку аргумента без начальных, конечных и повторяющихся пробелов.
string normalize-space(string)
Заметки
Пробелы нормализуются следующим образом: начальные и конечные символы пробела удаляются из строки, а несколько пробелов подряд заменяются одним. Если аргумент опущен, то функция нормализует и возвращает строковое значение узла контекста.
Приведенная ниже функция вернет значение «abc def»:
normalize-space(" abc def ")
Если аргумент не принадлежит к строковому типу*,* то он сперва преобразуется в строку, а затем обрабатывается функцией. См. следующий пример.
Если аргумент не имеет строкового типа, он сперва преобразуется в строку с помощью функции string(), после чего вычисления производятся с результатом преобразования.
Предупреждение
Преобразованиястрок для наборов узлов, передаваемых этой функции в качестве аргументов, могут привести к непредвиденным результатам.Для получения дополнительной информации см. Функция string (XPath).
Эта функция учитывает регистр символов.
Пример
В следующем примере нормализуется строка, представляющая собой блок текста с ненормализованными пробелами (содержит символы табуляции, начальные и конечные пробелы, а также несколько пробелов подряд между словами. Текстовая строка является значением элемента <text>.
XML-файл (normSpace.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"
href="normalizeSpace.xsl"?>
<text>
This is a
test, with a lot of
irregular spacing and
waiting to be normalizaed.
</text>
XSLT-файл (normSpace.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
omit-xml-declaration="yes"/>
<xsl:template match="/text">
Unnormalized:
"<xsl:value-of select='.'/>"
Normalized: "<xsl:value-of select='normalize-space()'/>"
</xsl:template>
</xsl:stylesheet>
Этот XSLT-файл сформирует следующие выходные данные:
Unormalized:
"
This is a
test, with a lot of
irregular spacing and
waiting to be normalizaed.
"
Normalized:
"This is a test, with a lot of irregular spacing and waiting to be normalized."