XSLT 中的命名模板、样式表函数与递归技术
在 XSLT 编程中,模板、函数和递归是强大且重要的概念。前面主要探讨了匹配模板,现在将深入研究命名模板、样式表函数以及递归的应用。
1. 命名模板
在以往编写的 XSLT 模板中,大多是匹配特定节点并对其进行处理。这些模板有的带有模式(mode),能从同一节点获得不同结果,还有的使用参数传递额外处理信息。将样式表拆分为模板有两大好处:一是利用处理器的节点匹配能力,确定处理特定节点的代码,尤其适用于处理面向文档的 XML 或结构可能变化的 XML;二是将样式表拆分为可重用部分,减少代码长度,便于编写和维护。
然而,有些处理操作不依赖于特定节点,或者在没有合适节点可匹配时也需要执行。例如,根据 <Program> 元素的 flag 属性值提供不同图片:
<xsl:template match="@flag">
<img src="{if (. = 'favorite') then 'favorite' else 'interest'}.gif"
alt="[{if (. = 'favorite') then 'Favorite' else 'Interest'}]"
width="20" height="20" />
</xsl:template>
若 flag 属性缺失,需提供间隔图片,代码就需嵌入 <Program>
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



