Многоуровневая нумерация
Многоуровневая нумерация
Элемент <xsl:number> также поддерживает многоуровневую нумерацию — такую как 3.1.2.5 и т. п. Для работы с ней нужно установить атрибут level в «multiple». При помощи атрибута count можно указать, узлы какого типа вы хотите нумеровать, установив этот атрибут в образец, например: "PART|CHAPTER|PARAGRAPH". При обработке элементов <xsl:number> процессор XSLT нумерует узлы в соответствии с иерархией документа.
В примере я нумерую каждый уровень в иерархии элементов planets.xml, установив атрибут count в «*» для выбора всех элементов. Можно также указать формат нумерации при помощи атрибута format. При многоуровневой нумерации атрибут format задает формат для различных уровней, например «1.1.1.» задает нумерацию 1., 2., … и т.д. для узлов верхнего уровня, 1.1., 1.2., … и т.д. для узлов уровнем ниже и 1.2.1., 1.2.2., … и т. д. для следующего уровня вниз. Вот как выглядит таблица стилей для этого примера в листинге 5.13.
Листинг 5.13. Многоуровневая нумерация
<?xml version="1.0"?>
<хsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="node()">
<xsl:copy>
<xsl:number format="1.1.1." level="multiple" count="*"/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Вот результат преобразования planets.xml в новый XML-документ, в котором перенумерованы все уровни элементов в соответствии с иерархией документа:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS>1.
<PLANET>1.1.
<NAME>1.1.1. Mercury</NAME>
<MASS>1.1.2. .0553</MASS>
<DAY>1.1.3. 58.65</DAY>
<RADIUS>1.1.4. 1516</RADIUS>
<DENSITY>1.1.5. .983</DENSITY>
<DISTANCE>1.1.6. 43.4</DISTANCE><!--В перигелии-->
</PLANET>
<PLANET>1.2.
<NAME>1.2.1. Venus</NAME>
<MASS>1.2.2. .815</MASS>
<DAY>1.2.3. 116.75</DAY>
<RADIUS>1.2.4. 3716</RADIUS>
<DENSITY>1.2.5. .943</DENSITY>
<DISTANCE>1.2.6 66.8</DISTANCE><!--В перигелии-->
</PLANET>
<PLANET>1.3.
<NAME>1.3.1. Earth</NAME>
<MASS>1.3.2. 1</MASS>
<DAY>1.3.3. 1</DAY>
<RADIUS>1.3.4. 2107</RADIUS>
<DENSITY>1.3.5. 1</DENSITY>
<DISTANCE>1.3.6. 128.4</DISTANCE><!--В перигелии-->
</PLANET>
</PLANETS>
На этом мы завершаем рассмотрение нумерации документов и переходим к последней теме этой главы — расширяемости XSLT.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Одноуровневая нумерация
Одноуровневая нумерация Одноуровневая нумерация — это простая нумерация, когда перенумеровываются узлы-братья на одном уровне. Этот тип нумерации установлен по умолчанию. В листинге 5.11 при помощи одноуровневой нумерации перенумеровываются планеты в planets.xml.Листинг 5.11.
Нумерация версий WSH
Нумерация версий WSH Скажем несколько слов относительно нумерации версий WSH. Самая первая версия WSH, входившая в качестве стандартного компонента в Windows 98, имела номер 1.0. С другой стороны, эта версия опиралась на языки сценариев JScript и VBScript версии 5.0, которые поддерживались
9.5.1. Нумерация
9.5.1. Нумерация Сначала приведем дополнительные сведения о нумерации жестких дисков в системе Linux (табл. 9.3).Таблица 9.3. Нумерация жестких дисков Тип жесткого диска Старший номер Наименование устройства Младший номер Диск 1 Диск 2 IDE на 1 контроллере 22 /dev/hda и /dev/hdb 0 … 63 64 …
1.7.5. Многоуровневая архитектура стека TCP/IP
1.7.5. Многоуровневая архитектура стека TCP/IP Этот пункт книги является необязательным: если вы считаете, что у вас уже достаточно знаний о протоколе TCP/IP, то можете перейти к следующим разделам, а к этому вернуться позже. Здесь будет описана многоуровневая архитектура
10.3.1 Нумерация и подтверждение
10.3.1 Нумерация и подтверждение Для обеспечения надежной пересылки данных в TCP используются нумерация (numbering) и подтверждение (acknowledgment — ACK). Схема нумерации TCP несколько необычна: каждый пересылаемый по соединению октет рассматривается как имеющий порядковый номер.
27.1.1. Многоуровневая архитектура стека TCP/IP
27.1.1. Многоуровневая архитектура стека TCP/IP Протокол TCP/IP был создан в конце 60-х — начале 70-х годов агентством DARPA Министерства Обороны США (U.S. Department of Defense Advanced Research Projects Agency). Основные этапы развития этого протокола отмечены в таблице 27.1.Этапы развития протокола TCP/IP Таблица
Нумерация страниц
Нумерация страниц Если документ состоит более чем из двух страниц, перед распечаткой желательно пронумеровать страницы. Таким образом в нем будет гораздо легче ориентироваться. Для некоторых типов документов, например научных работ, нумерация является
Нумерация строк
Нумерация строк При работе с документами определенного типа (например, с юридическими договорами) иногда бывает необходимо нумеровать не только страницы, но и строки. В Microsoft Word есть возможность автоматической нумерации строк. Для этого сделайте следующее.1. Щелкните на
Разбивка на страницы и нумерация
Разбивка на страницы и нумерация Word разбивает документ на страницы автоматически, руководствуясь параметрами страницы, установленными в меню Файл/Параметры страницы (File/Page Setup). Воспользовавшись этим меню, вы можете изменить такие важные параметры, как отступ текста от
Многоуровневая модель
Многоуровневая модель Увеличение возможностей масштабирования и требования большей функциональной совместимости приводят к модели с большим количеством уровней, как показано на рис. 5.2. Клиентский интерфейс перемещается в центр модели; он объединяется с одним или
1.2.4. Нумерация работ и диаграмм
1.2.4. Нумерация работ и диаграмм Все работы модели нумеруются. Номер состоит из префикса и числа. Может быть использован префикс любой длины, но обычно используют префикс А. Контекстная (корневая) работа дерева имеет номер АО. Работы i декомпозиции АО имеют номера А1, А2, A3 и т.
Нумерация
Нумерация Нумерация, несомненно, является одной из самых естественных проблем, решаемых при помощи XSLT. Задача нумерации состоит в том, чтобы, исходя из позиции обрабатываемого узла в дереве документа, вычислить по заданным критериям его порядковый номер. В качестве
Нумерация страниц
Нумерация страниц Текстовый редактор Microsoft Word обладает гибкими инструментами нумерации страниц. С их помощью можно автоматически присваивать номера страницам документа, размещать их в любом месте страницы. При этом возможно использование различных форматов
Нумерация страниц
Нумерация страниц Для нумерации страниц вам нет необходимости вручную проставлять номера на каждой из них, поскольку Word справится с этой задачей намного эффективнее и избавит вас от множества проблем. Чтобы вставить номера страниц, выполните команду Вставка ?