http://tech.sina.com.cn/s/s/2008-06-18/1202698101.shtml
通过XSL template与import实现代码重用
http://www.sina.com.cn 2008年06月18日 12:02 IT168.com
【IT168技术文档】
在OO的世界里,代码复用是很重要的思想之一.在DotNet下,代码复用的一个典型就是企业库了,把很多常用的代码都封装成一个库了.在XSL里也可以借用这种思想,利用template与import实现代码实现XSL的重用,如果使用XSL开发过很多XML相关应用,肯定会有很多代码可能是经常能用到的,把它封装到一个文件下,比如:
1 <? xml version="1.0" ?>
2 < xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
3 <!--
4 模板名称:replacing-substring。
5 模板作用:替换指定文本的特定字符。
6 参数列表:text表示要处理的文本;from表示要替换的目标字符;to表示替换的结果字符。
7 -->
8 < xsl:template name ="replacing-substring" >
9 < xsl:param name ="text" />
10 < xsl:param name ="from" />
11 < xsl:param name ="to" />
12 < xsl:choose >
13 < xsl:when test ="contains($text,$from)" >
14 < xsl:value-of select ="substring-before($text,$from)" />
15 < xsl:copy-of select ="$to" />
16 < xsl:call-template name ="replacing-substring" >
17 < xsl:with-param name ="text" select ="substring-after($text,$from)" />
18 < xsl:with-param name ="from" select ="$from" />
19 < xsl:with-param name ="to" select ="$to" />
20 </ xsl:call-template >
21 </ xsl:when >
22 < xsl:otherwise >
23 < xsl:copy-of select ="$text" />
24 </ xsl:otherwise >
25 </ xsl:choose >
26 </ xsl:template >
27 </ xsl:stylesheet >
这里只写出了一个方法,以后有更多的方法可以加入到这个文件中,我把它命名为Common.xslt
在需要的地方import进来:
1 <? xml version="1.0" ?>
2 < xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
3 < xsl:import href ="Common.Xslt" />
4 < xsl:template match ="stories" >
5 < table >
6 < td >
7 < xsl:call-template name ="replacing-substring" >
8 < xsl:with-param name ="text" select ="story[1]/text()" />
9 < xsl:with-param name ="from" > | </ xsl:with-param >
10 < xsl:with-param name ="to" >< br /></ xsl:with-param >
11 </ xsl:call-template >
12 </ td >
13 </ table >
14 </ xsl:template >
15 </ xsl:stylesheet >
作用就是把story的文本值里的|符号替换成<br />,我把这个文件命名为:project.xslt
使用这个xsl文件的示例XML文件如下:
1 <? xml version="1.0" ?>
2 <? xml-stylesheet type="text/xsl" href="project.xslt" ?>
3 < stories >
4 < story >
5 1,从前有一条村|村里有一户人家|家里有个小孩子.
6 </ story >
7 < story >
8 2,从前有一条村|村里有一户人家|家里有个小孩子.
9 </ story >
10 </ stories >
分享到:
相关推荐
通过这种方式,可以实现XSLT样式的重用和模块化。 --- #### <xsl:apply-templates>元素 `<xsl:apply-templates>` 是XSLT中最常用和最核心的元素之一,它负责应用匹配选择的模板。此元素允许你指定一组模板应该...
它允许开发者通过一系列模板规则来改变源XML文档的结构和外观,进而实现数据的重新组织或格式化。XSLT作为XSL规范的一部分,在处理XML数据时具有重要的地位。 #### XSLT概述 XSLT的核心功能在于能够灵活地操纵XML...
- 通过这种方式,可以实现XSLT样式的重用和模块化设计。 ##### `<xsl:apply-templates>` - **定义与用法**: - `<xsl:apply-templates>`元素用于指定对当前节点或选择的节点集应用模板。 - 可以使用`select`属性...
`<xsl:apply-imports>`元素在XSLT中被用来执行由`<xsl:import>`语句导入的样式表中的模板。当XSLT处理器遇到`<xsl:apply-imports>`元素时,它将查找是否有任何适用的模板来自已导入的样式表,并执行它们。这在需要...
5. 高度重用的页面元素可以通过XSL的include/import功能实现,推动标准化。 6. 支持不同终端设备,通过定制不同的XSL,可以轻松适应手机、PDA等设备。 7. 数据库如SQL2000可以直接生成XML结果,减少了额外的编程工作...
8. **模板继承与覆盖**: 模板可以通过`<xsl:import>`和`<xsl:include>`进行组合,通过`<xsl:override>`和`<xsl:exclude-result-prefixes>`实现继承和覆盖,以实现复用和定制。 9. **输出格式**: XSLT不仅可以处理...
4. **模板复用**:可能包含使用`<xsl:call-template>`调用已定义模板的例子,以实现代码复用。 5. **排序和分组**:`<xsl:sort>`和`<xsl:group-by>`的示例,显示如何对XML数据进行排序和分组。 6. **XPath表达式**...
在实际开发中,为了提高代码的可维护性和重用性,通常会将XSLT转换逻辑封装到一个独立的Java类或库中,然后在JSP中调用这个服务。此外,还可以使用如Spring MVC等框架来更优雅地处理XML和XSLT的转换。 总结来说,...
- `xsl:include` 和 `xsl:import`:引入其他样式表以实现模块化设计。 - `xsl:attribute-set`:定义可重用的属性集。 **6. XSLT的高级特性** - `xsl:namespace-alias`:为不同的命名空间提供别名。 - `xsl:key`:...
10. **XSLT样式表的导入和包含**:通过`<xsl:import>`和`<xsl:include>`元素,可以将多个样式表组合在一起,实现模块化开发。 11. **条件处理**:XSLT提供了`<xsl:if>`和`<xsl:choose>`元素来进行条件判断,根据...
- 这有助于代码重用和组织大型项目。 8. **处理指令** - `processing-instruction`元素用于创建处理指令,这些指令可以被XML处理器读取和执行。 9. **实际应用** - XSLT广泛用于生成动态网页、报表、PDF文档等...