我们经常会遇到与文件中的下面几天语句相似的情况:
<xsl:for-each select="X_Agent/代理品牌/品牌">
<TD valign="middle" width="300" height="400" bgcolor="rgb(255,0,0)">
<P class="Case1"><xsl:value-of select="品牌介绍"/></P>
</TD>
</xsl:for-each>
其中,xsl:for-each元素可用来在XML文档中提取多个同名元素中的数据,而它的属性select的值就是同名元素在XML文档树状结构中的位置,或者说同名元素的路径。具体到本实例中,由于select属性指定的路径为"X_Agent/代理品牌/品牌",即是准备提取“品牌”元素的某个子元素中的数据,而到底提取哪个子元素的数据是由<xsl:value-of select="品牌介绍"/>规定的,即把子元素“品牌介绍”中的数据提出来放到结果树中。同时,由于XML文档中有三个“品牌”元素,为了得到这三个元素都具有的“品牌介绍”子元素中的数据,就必须依靠XSL元素xsl:for-each的功能来依次指定它们,然后再通过xsl:value-of元素来提取子元素中的内容。由此可见,xsl:for-each元素可以产生类似很多编程语言中循环执行命令的效果,具有很高的格式化效率。列出的几条语句等效与下面的HTML代码:
如果现在源文档中有上百种甚至更多的彩显品牌,要分别把它们的品牌介绍都显示到页面上,若用XSL来实现,还是上面列出的那几条语句就行了。但要用HTML来实现可能就需要编写几百条语句了。从这里我们可以看出XSL的强大功能。