Eschew for-each
и пусть процессор XSLT выполняет большую часть работы:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="ruletype">
<li><xsl:apply-templates/></li>
</xsl:template>
</xsl:stylesheet>
Применительно к этому документу:
<ruletypes>
<ruletype>Local</ruletype>
<ruletype>Global</ruletype>
</ruletypes>
Создает следующий вывод:
<li>Local</li>
<li>Global</li>
Обратите внимание, что здесь используется встроенный шаблон XSLT для элементов, который поддерживает обработку, пока не встретится "интересный" узел, и встроенный шаблон для текстовых узлов,который копирует текст.