Инструкция for-each
Если вы внимательно посмотрите на xml-документ, приведенный выше, то заметите, что авторы представлены в виде списка имен, разделенных запятыми. Очевидно, что наилучшим выходом было бы поместить имена авторов в отдельные теги <author>:
<document> <title>Donantonio: bibliographic system for automatic distribuited publication. Specifications of Software Requeriments</title> <author>Ismael Olea</author> <author>Juan Jose Amor</author> <author>David Escorial</author> <module>donantonio</module> <format pdf="yes" ps="no" html="yes"/> </document>
И вывести каждое имя в отдельной строке с помощью xsl:apply-templates и xsl:template match, но то же самое можно сделать и с помощью инструкции xsl:for-each.
<xsl:for-each select="author"> <tr> <td> Author: <xsl:apply-templates /> </td> </tr> </xsl:for-each>
В этом случае XSLT-процессор пройдет по списку авторов документа и, если вас интересует какой шаблон я использовал для обработки тегов <author>, я могу сказать - никакой. XSLT-процессор воспримет элемент apply-templates как обычный 'print' и выведет содержимое тега, выбранного элементом for-each.