<!-- Category: instruction -->
<xsl:for-each
select =
node-set-expression>
<!-- Content: (xsl:sort*,
template) -->
</xsl:for-each>
Если результат имеет известную регулярную структуру, полезно иметь возможность указать это прямо в шаблоне для собираемых узлов. Инструкция xsl:for-each
содержит шаблон, который обрабатывается для каждого узла, отобранного выражением, указанным в атрибуте select
. Атрибут select
является обязательным. Результатом обработки выражения должен быть набор узлов. При обработке шаблона выбранный узел берется в качестве текущего узла, а весь список собранных узлов берется в качестве текущего набора узлов. Узлы обрабатываются в том порядке как они следуют в документе, если нет указаний относительно сортировки (см. [10 Сортировка]).
Например, дан XML документ со следующей структурой
<customers> <customer> <name>...</name> <order>...</order> <order>...</order> </customer> <customer> <name>...</name> <order>...</order> <order>...</order> </customer> </customers>
Следующий пример должен создать HTML документ, содержащий таблицу, где каждому элементу customer
отводится отдельная строка.
<xsl:template match="/"> <html> <head> <title>Customers</title> </head> <body> <table> <tbody> <xsl:for-each select="customers/customer"> <tr> <th> <xsl:apply-templates select="name"/> </th> <xsl:for-each select="order"> <td> <xsl:apply-templates/> </td> </xsl:for-each> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template>
Назад | Содержание | Вперед