XSLT:有没有办法“继承”固定功能?

时间:2010-05-01 03:14:19

标签: xslt inheritance code-reuse code-templates

我再一次不得不拼凑一些XSLT,以便将生成的XML转换为(而不是简单地生成HTML)。

这次我再次拥有巨大的deja-vu。我再一次要解决基本问题,例如:

  • 如何将字符转换为有效的html实体引用
  • 转换为html时如何保留空格/回车
  • 如何转换为HTML而不是xhtml
  • 如何将日期从 xml格式转换为可呈现的格式
  • 如何用子串撕开字符串

这是我以前多次解决的所有事情。但是每次我回到XSLT,我都必须从头开始,每次重新发明轮子。

如果它是一种编程语言,我将拥有一个可以调用的固定功能和程序库。我会有子程序来执行常见的重复任务。我将继承一个已经实现丑陋样板文件的基类。

XSLT中是否有任何方法可以使用预制代码来扩展,扩展和改进生态系统?

1 个答案:

答案 0 :(得分:3)

  

这是我解决过的所有事情   之前很多次。但每次我   回到XSLT,我必须从头开始   划伤,重新发明轮子   时间。

当然没有必要

  

如果是编程语言

是的,XSLT 是一种编程语言

  

我会有一个罐头库   我可以打电话的功能和程序。一世   会有子程序来执行   通常重复的任务。

是的,您可以在XSLT中执行此操作。

  我会的   从已经基类继承   实现丑陋的样板文件。

是的, 在XSLT中非常相似

  

XSLT中是否有任何增长方式,   用。扩展和改善生态系统   罐头代码?

即使在XSLT 1.0中,也有支持可重用性的强大标准功能

  1. <xsl:import>
  2. <xsl:include>
  3. <xsl:apply-templates>
  4. <xsl:call-template>
  5. <xsl:apply-imports>
  6. XSLT 2.0增加了一些更强大的功能

    1. <xsl:function>
    2. Parameters for <xsl:apply-imports>
    3. <xsl:next-match>
    4. 已经有好几个XSLT库

      1. FXSL1.x2.x)在XSLT 1.0 / 2.0中实现高阶函数
      2. FunctX - 一个有用的XSLT 2.0和XQuery函数库。
      3. XPath 2.1XSLT 2.1 将高阶函数添加为标准。函数成为一流的数据类型。