xsl:preserve-space¶
Элемент xsl:preserve-space
сохраняет текстовые узлы, состоящие только из пробельных символов, которые содержатся в элементах, указанных в атрибуте elements
.
Синтаксис¶
<xsl:preserve-space
elements = tokens />
Атрибуты:
elements
- обязательный атрибут, содержит не сами имена элементов, а так называемые проверки имен. Проверка имени имеет три варианта синтаксиса.
-
- Синтаксис "
*
" используется для выбора произвольных имен. Ей будут соответствовать любые имена элементов.
- Синтаксис "
-
- Синтаксис "
имя
" используется для выбора элементов с заданным именем. К примеру, проверке имени "d
" будут соответствовать все элементы с именем "d
".
- Синтаксис "
-
- Синтаксис "
префикс:*
" используется для выбора всех элементов в данном пространстве имен. К примеру, если в документе определен префикс пространства именupr
в виде атрибутаxmlns:upr="http://www.upr.com"
, проверке имени "upr:*
" будут соответствовать все элементы пространства имен, определяемого идентификатором "http://www.upr.com
".
- Синтаксис "
Описание и примеры¶
Пример¶
Предположим, что нам необходимо сохранить пробельные символы в элементе с именем c
и удалить их в элементе e
и элементах, принадлежащих пространству имен, определяемому идентификатором "urn:d
".
Листинг 8.2. Входящий документ
<a xmlns:d="urn:d">
<d:b>
</d:b>
<d:b>text</d:b>
<c>
</c>
<e>
</e>
</a>
Листинг 8.3. Преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:preserve-space elements="c" />
<xsl:strip-space elements="e t:*" xmlns:t="urn:d" />
<xsl:template match="/">
<xsl:copy-of select="/" />
</xsl:template>
</xsl:stylesheet>
Листинг 8.4. Выходящий документ
<?xml version="1.0" encoding="UTF-8" ?>
<a xmlns:d="urn:d">
<d:b />
<d:b>text</d:b>
<c>
</c>
<e />
</a>
Ссылки¶
xsl:preserve-space
MDN (рус.)xsl:preserve-space
MSDN (en)