1. XSL
简介
XSL是扩展样式表语言(Extensible Stylesheet Language),是一种用于描述和转换XML文档的语言。主要包含两个组件:XSLT和XPath。XSLT定义了如何将一个XML文档转换成另一种结构或格式,例如HTML、PDF或其他XML文档。它使用模板匹配和转换规则来处理输入XML,并生成输出结果。XPath用于在XML文档中定位和选择节点,以便在XSLT中进行处理。
XSL样式表<xsl:stylesheet>由一个或多套被称为模板(template)的规则组成。每个模板含有当某个指定的节点被匹配时所应用的规则。
常用规则
<xsl:template name=’’ match=’’ mode=’’ priority=’’>元素用于构建模板。其中,name属性为模板定义名称;match属性为模板的匹配模式,其值是XPath表达式,用于关联XML元素和模板,也可用来为整个文档定义模板;mode属性为模板规定模式;priority为模板的优先级编号。 <xsl:value-of select=’’ disable-output-escaping=’’>元素用于提取某个选定节点的值,并把值添加到转换的输出流中。select属性的值是一个XPath表达式,用来定位选定节点的值。Disable-output-escaping默认为no,若为yes,则通过实例化xsl:text元素生成的文本节点在输出时将不进行任何转义。 <xsl:for-each select=’’>用于选定节点集中的每个XML元素,允许在XSLT中进行循环。 <xsl:sort select=’’>元素用于对结果进行排序。select属性指定需要排序的XML元素。 <xsl:if test=’’>元素用于放置针对XML文件内容的条件测试。test属性包含需要求值的表达式。 <xsl:apply-templates select=’’ mode=’’>元素可把一个模板应用与当前元素或其子节点。select属性规定处理的节点,星号选取整个节点,省略该属性,则将选取当前节点的所有子节点;mode属性是在存在为相同元素定义多个处理方法情况是进行区分的。 <xsl:attribute name=’’ namespace=’’>元素用于向元素添加属性,会替换名称相同的已有属性。 <xsl:attribute-set name=’’ use-attribute-sets>元素可创建可应用于任何输出元素的属性集。 <xsl:call-template name=’’>元素可调用一个指定的模板。 <xsl:comment>用于在结果树中创建注释节点。 <xsl:element name=’’ namespace=’’ use-attribute-sets=’’>用于在输出文档中创建元素节点 <xsl:copy use-attribute-sets>创建当前节点的一个副本,只复制节点的namespace节点 <xsl:copy-of select=’’>创建当前节点的一个副本,当前节点的namespace节点、子节点以及属性都会被复制 <xsl:param name=’’ select=’’>用于声明局部或全局参数 <xsl:variable name=’’ select=’’>用于声明局部或全局的变量,被声明为顶层元素,变量就是全局,模板内声明,则变量就是本地的,一旦声明,无法再修改该值。 <xsl:output>定义输出文档的格式。 <xsl:apply-imports>元素应用来自导入样式表中的模板规则,导入的规则优先级比主样式表的模板规则低。 |
2. XSLT
可扩展样式表语言转换(XSLT)描述了将源树转换成结果树的规则。XSLT中表示的转换称为样式表。指定的转换是通过将模式与在样式表中定义的模板相关联实现的。实例化模板以创建结果树的一部分。
通过XSLT可以向或者从输出文件添加或移除元素和属性,也可以重新排列元素,执行测试并决定隐藏或显示哪个元素等。XSLT使用XPath在XML文档中查找信息,XPath被用来通过元素和属性在XML文档中进行导航。在转换过程中,XSLT使用XPath来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到,XSLT就会把源文档的匹配部分转换为结果文档。