Книга: Технология XSLT
Элементы xsl:preserve-space и xsl:strip-space
Разделы на этой странице:
Элементы xsl:preserve-space и xsl:strip-space
Синтаксические конструкции этих элементов очень похожи:
<xsl:preserve-space
elements="токены"/>
<xsl:strip-space
elements="токены"/>
Элемент xsl:preserve-space
добавляет, a xsl:strip-space
удаляет имя элемента из сохраняющего множества входящего документа.
Пример
Предположим, нам нужно сохранять пробельные символы во всех элементах d
и удалять их в элементах с
. Тогда в преобразовании достаточно указать
<xsl:preserve-space elements="d"/>
<xsl:strip-space elements="c"/>
Вообще, обязательные атрибуты elements элементов xsl:strip-space
и xsl:preserve-space
содержат не сами имена элементов, а так называемые проверки имен. Проверка имени имеет три варианта синтаксиса.
? Синтаксис "*"
используется для выбора произвольных имен. Ей будут соответствовать любые имена элементов.
? Синтаксис "имя"
используется для выбора элементов с заданным именем. К примеру, проверке имени "d"
будут соответствовать все элементы с именем "d
".
? Синтаксис "префикс:*"
используется для выбора всех элементов в данном пространстве имен. К примеру, если в документе определен префикс пространства имен upr
в виде атрибута xmlns:upr="http://www.upr.com"
, проверке имени "upr:*"
будут соответствовать все элементы пространства имен, определяемого идентификатором "http://www.upr.com"
.
Пример
Предположим, что нам необходимо сохранить пробельные символы в элементе с именем с
и удалить их в элементе e
и элементах, принадлежащих пространству имен, определяемому идентификатором "urn:d
".
Листинг 8.2. Входящий документ
<а xmlns:d="urn:d">¶
??<d:b>¶
????<c>¶
??????</e>¶
????</c>¶
??</d:b>¶
</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><c>¶
??????<e/>¶
????</c></d:b>¶
</a>
- Элементы и
- 6.4. Рабочий лист Excel и его структурные элементы
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- Использование отдельных процессоров XSLT
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Вложение файлов в элементы списков
- Логические элементы
- 5.2. Основные приемы работы, элементы текстового редактора
- Правило 16. Группируйте связанные между собой элементы
- namespace-uri()
- Глава 12 Документы XSL-FO