Коллеги!
Изучаю 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>
</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".
Изучаю 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>
</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".