Элементы <xsl:strip-space> и <xsl:preserve-space>
Элементы <xsl:strip-space> и <xsl:preserve-space>
Элемент <xsl:strip-space> дает указание процессору XSLT убрать все чистые узлы-разделители (также называемые «потребляемыми», expendable, узлами-разделителями) из. выходного документа. Чистый узел-разделитель состоит только из символов-разделителей и не содержит текст какого-либо другого вида. У этого элемента только один атрибут:
• elements (обязательный). Задает элементы, из которых нужно убрать символы-разделители. Представляет, собой список разделённых символами-разделителями NameTest (именами или обобщёнными именами с символами подстановок).
Элемент не включает содержимого. Например, чтобы удалить все узлы-разделители из planets.xml, можно применить <xsl:strip-space elements="*"/> следующим образом:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="xml"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Вот результирующий документ, полученный после применения этой таблицы стилей к planets.xml. Обратите внимание на то, что убраны все символы-разделители, в том числе все символы новой строки:
<?xml version="1.0" encoding="utf-8"?><PLANETS><PLANET><NAME>Mercury</NAME><MASS>.0553</MASS><DAY>58.65</DAY><RADIUS>1516</RADIUS><DENSITY>.983</DENSITY><DISTANCE>43.4</DISTANCE></PLANET><PLANET><NAME>Venus</NAME><MASS>.815</MASS><DAY>116.75</DAY><RADIUS>3716</RADIUS><DENSITY>.943</DENSITY><DISTANCE>66.8</DISTANCE></PLANET><PLANET><NAME>Earth</NAME><MASS>1</MASS><DAY>1</DAY><RADIUS>2107</RADIUS><DENSITY>1</DENSITY><DISTANCE>128.4</DISTANCE></PLANET></PLANETS>
Заметьте, что таким образом удаляются только чистые узлы-разделители. Например, текст элемента <TITLE>Volcanoes for Dinner</TITLE> не содержит чистых текстовых узлов-разделителей, поэтому текст «Volcanoes for Dinner» будет сохранен в выходном документе вместе с пробелами. Так будет даже тогда, когда текст будет содержать несколько пробелов подряд, как в «Volcanoes for Dinner».
В некоторых ситуациях может потребоваться не удалять все узлы-разделители из всего документа; задать элементы, в которых следует сохранить узлы-разделители, можно при помощи элемента <xsl:preserve-space>. У этого элемента такой же атрибут, что и у <xsl:strip-space>:
• elements (обязательный). Задает элементы, в которых нужно сохранить символы-разделители. Представляет собой список разделенных символами-разделителями NameTest (именами или обобщенными именами с символами подстановок).
Фактически элемент <xsl:preserve-space> является элементом по умолчанию для всех элементов в XSLT. Если вы использовали элемент <xsl:strip-space>, все равно можно указать, в каком элементе или элементах нужно сохранить узлы-разделители, установив атрибут elements элемента <xsl:preserve-space> в список этих элементов:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="MASS RADIUS"/>
<xsl:output method="xml"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Обсужденные средства удаления и сохранения разделителей могут показаться слишком сложными для форматирования выходных документов выравнивающими пробелами, но, к счастью, существует простой способ: атрибут indent элемента <xsl:output> позволяет автоматически выровнять выходной документ.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Элементы <xsl:strip-space> и <xsl:preserve-space>
Элементы <xsl:strip-space> и <xsl:preserve-space> Элемент <xsl:strip-space> дает указание процессору XSLT убрать все чистые узлы-разделители (также называемые «потребляемыми», expendable, узлами-разделителями) из. выходного документа. Чистый узел-разделитель состоит только из
normalize-space()
normalize-space() Функция normalize-space удаляет лидирующие и завершающие символы-разделители и сжимает все внутренние идущие подряд разделители в один пробел, возвращая полученную строку. Функция применяется следующим образом:string normalize-space(string?)В следующем примере я добавил
21.3.6. strip
21.3.6. strip Утилита strip удаляет таблицу символов из объектного
Space Bundle
Space Bundle Space Bundle – это пакет из трех плагинов. Они также доступны по отдельности, однако все же лучше рассматривать их вместе, настолько удачно они дополняют друг друга. Glitterato (Сверкание), LunarCell (Лунная полусфера) и SolarCell (Солнечная полусфера) – это фильтры для создания
От игры «Senet» до "Space War
От игры «Senet» до "Space War Игры существовали еще раньше того времени, которым датируется первое упоминание о них. Кажется, людям всегда было свойственно создавать виртуальные, выдуманные ситуации, которые позволяли бы им соревноваться друг с другом.Эволюция настольных
От «Space War» к «Pong»
От «Space War» к «Pong» В 1962 году Стив Рассел (Steve Russel) и другие аспиранты Технологического института штата Массачусетс (Massachusetts Insitute of Technology) на вычислительной машине PDP-1 создали первую компьютерную игру. В этой игре два космических корабля старались поразить друг друга. Графика
Минкомсвязь, или Бессмысленный полёт мотылька в опасной близости от лампы о сокращении, или упрощении, или даже полной отмене <span style="white-space:nowrap">чего-либо</span>. Новостей много, но нет ничего, что было бы похоже на работу вообще и на построение информационного общества в частности — н
Минкомсвязь, или Бессмысленный полёт мотылька в опасной близости от лампы о сокращении, или упрощении, или даже полной отмене <span style="white-space:nowrap">чего-либо</span>. Новостей много, но нет ничего, что было бы похоже на работу вообще и на построение
Голубятня: Fisher Space Pen Сергей Голубицкий
Голубятня: Fisher Space Pen Сергей Голубицкий Опубликовано 19 января 2012 года В детстве я узнал о существовании «волшебного пера»: американской ручки, созданной специально для астронавтов. В совершенно другой эпохе the dream came true и сегодня я делюсь радостью со
Компьютер Space Shuttle: пятеро в челноке, не считая экипажа Евгений Лебеденко, Mobi.ru
Компьютер Space Shuttle: пятеро в челноке, не считая экипажа Евгений Лебеденко, Mobi.ru Опубликовано 19 июля 2011 года Восьмого июля 2011 года в половину восьмого вечера по московскому времени успешно стартовала последняя из миссий космической транспортной
§ 2.5 Элементы описания книги (description). Элементы второго уровня
§ 2.5 Элементы описания книги (description). Элементы второго уровня Элемент genreЖанр произведения.Содержимое элемента строго фиксировано и определяется файлом FictionBookGenres.xsd, входящим в состав спецификации FictionBook.Список жанров с переводом приведен в Приложении В.Cинтаксис:
§ 2.6 Элементы описания книги (description). Элементы третьего уровня (информация об авторе)
§ 2.6 Элементы описания книги (description). Элементы третьего уровня (информация об авторе) Элемент first-nameИмя автора книги или документа, а также переводчика.Cинтаксис: <first-name>текст</first-name>Используется в элементах: author, translatorВложенные элементы: нетКоличество вхождений:
§ 2.9 Элементы раздела книги (section). Элементы второго уровня.
§ 2.9 Элементы раздела книги (section). Элементы второго уровня. Элемент stanzaСтрофа стихотворения.Cинтаксис: stanza>content</stanza>Используется в элементах: poemВложенные элементы: title, subtitle, vКоличество вхождений: одно и болееАтрибуты: нетВерсия формата: 2.0Пример: см. пример
Space dot com
Space dot com mindw0rkОпубликовано: dl, 16.04.06 05:26Джефф, как никто другой, знал, что в компьютерном мире нет ничего невозможного. Не бывает систем защиты, которые невозможно взломать, не бывает программ, которые невозможно написать. Поэтому он растерянно смотрел на экран своего