xslt-1.0xslt-1.0入门


备注

本节概述了xslt-1.0是什么,以及开发人员可能想要使用它的原因。

它还应该提到xslt-1.0中的任何大型主题,并链接到相关主题。由于xslt-1.0的文档是新的,因此您可能需要创建这些相关主题的初始版本。

使用“身份规则”进行身份转换

此示例显示了几乎所有XSLT转换的基础和最基本的XSLT设计模式。生成与源XML文档相同的XML文档作为输出。

源XML文档

<t>Hello, World!</t>
 

XSLT转换

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
 

结果 :当在任何源XML文档应用该变换,输出的XML文档是相同的源的XML文档。在这种情况下:

<t>Hello, World!</t>
 

请注意

  1. 使用和覆盖标识规则是最基本的XSLT设计模式。这为基本任务提供了简单,简洁和优雅的解决方案,例如删除/插入/重命名元素等等。

  2. 身份规则/模板是在W3C XSLT 1.0规范中发布的

安装或设置

为了执行任何XSLT转换,XSLT处理器是必需的。它通常可以通过系统的包管理器安装。例如在Debian中它可以安装:

sudo apt-get install xsltproc
 

最小的“Hellow World”转型

这是一种可能的最小XSLT转换。它生成源XML文档的字符串值。输出格式为text

源XML文档

<t>Hello, World!</t>
 

XSLT转换

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
</xsl:stylesheet>
 

在上面指定的源XML文档上应用转换的结果

Hello, World!
 

请注意

  1. 不使用<xsl:template> 声明。

  2. 所需的输出类型在<xsl:output> 声明中指定,作为其method属性的值。

  3. 当没有匹配的模板时,XSLT处理器遵循XSLT处理模型的规则,应用标准的XSLT 内置模板 ,这导致按文档顺序复制到所有文本节点的串联输出。在这个简单的例子中,源XML文档只有一个文本节点,字符串值为字符串“ Hello, World! ”。