Редактирование сообщения в Вычисление позиции узла с помощью xsl:number. Проблема.

Статус
Закрыто для дальнейших ответов.

Maximario

Новичок
Регистрация
30.07.2015
Сообщения
2
Коллеги!
Изучаю XSLT по книге Алексея Валикова "Технология XSLT".
В ней есть такой пример на вычисление позиций узлов во входящем документе. Цель вычисления - вывести оглавление в результирующем документе.
Итак.
Входящий документ:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
<chapter title="First chapter">
<section title="First section">
<para>paragraph 1</para>
<para>paragraph 2</para>
<para>paragraph 3</para>
</section>
<section title="Second section">
<para>paragraph 4</para>
<para>paragraph 5</para>
</section>
</chapter>
<chapter title="Second chapter">
<section title="Third section">
<para>paragraph 6</para>
<para>paragraph 7</para>
<para>paragraph 8</para>
<para>paragraph 9</para>
</section>
<section title="Forth section">
<para>paragraph 10</para>
<para>paragraph 11</para>
<para>paragraph 12</para>
</section>
<section title="Fifth section">
<para>paragraph 13</para>
<para>paragraph 14</para>
<para>paragraph 15</para>
<para>paragraph 16</para>
</section>
</chapter>
<chapter title="Third chapter">
<section title="Sixth section">
<para>paragraph 17</para>
<para>paragraph 18</para>
</section>
</chapter>
</doc>

Преобразование:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="1.0">
<xsl:template match="chapter">
<xsl:number value="position()" format="1. " />
<xsl:value-of select="@title"/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
</xsl:stylesheet>

На выходе получаем:

<?xml version="1.0" encoding="utf-8"?>
2. First chapter

4. Second chapter

6. Third chapter

Помогите понять, почему позиции вычисляются "2, 4, 6", а не "1, 2, 3"?
В книге написано, что должно быть "1, 2, 3".
 
Статус
Закрыто для дальнейших ответов.
Верх Низ