Поделиться через


Функция 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."

См. также

Ссылки

Справочник по типам данных XML