XSLT <for-each>学习笔记

1. 概述

在XSLT中,<for-each>元素用于遍历XML文档中的所有节点,并为每个节点执行相同的转换操作。<for-each>可以嵌套,以实现更复杂的转换操作。

2. 基本语法

<for-each>元素的基本语法如下:

Copy Code
<xsl:for-each select="XPath表达式"> <!-- 执行操作 --> </xsl:for-each>

其中,select属性用于指定要遍历的节点集合,该属性的值是一个XPath表达式。<for-each>元素内部的操作会针对每个选中的节点执行。

3. 实例

接下来我们将演示几个使用<for-each>的实例。

3.1 遍历节点

假设我们有以下XML文档:

xmlCopy Code
<root> <item>第一项</item> <item>第二项</item> <item>第三项</item> </root>

我们可以使用<for-each>遍历<item>节点,并输出节点内容,具体代码如下:

xmlCopy Code
<ul> <xsl:for-each select="root/item"> <li><xsl:value-of select="."/></li> </xsl:for-each> </ul>

输出结果为:

htmlCopy Code
<ul> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ul>

3.2 嵌套遍历

假设我们有以下XML文档:

xmlCopy Code
<root> <section> <title>节标题1</title> <item>第一项</item> <item>第二项</item> </section> <section> <title>节标题2</title> <item>第三项</item> <item>第四项</item> </section> </root>

我们可以使用两个嵌套的<for-each>元素来遍历每个节和每个节内的项,具体代码如下:

xmlCopy Code
<ul> <xsl:for-each select="root/section"> <li><xsl:value-of select="title"/></li> <ul> <xsl:for-each select="item"> <li><xsl:value-of select="."/></li> </xsl:for-each> </ul> </xsl:for-each> </ul>

输出结果为:

htmlCopy Code
<ul> <li>节标题1</li> <ul> <li>第一项</li> <li>第二项</li> </ul> <li>节标题2</li> <ul> <li>第三项</li> <li>第四项</li> </ul> </ul>

4. 总结

<for-each>是XSLT中非常重要的元素之一,它可以方便地遍历XML文档中的节点,并进行相应的转换操作。在实际开发中,我们经常使用<for-each>来处理复杂的XML文档。