- xslt如何定义变量
- 如何实现递归
- 如何进行非空的判断
xsl:for-each
元素允许在xslt中循环
(图片来自:https://www.w3school.com.cn/xsl/xsl_for_each.asp)
需要注意的是:
正斜杠为子目录
在for-each下使用value-of的情况下,通过select选择节点的时候,直接使用 节点名称即可,节点路径相对于上一级的select继续往下层延申
提到的过滤运算符也有必要了解一下:
xsl:sort
元素对于结果排序
xsl:if
添加有条件的测试
注意这里对于过滤符号的使用:
xsl:choose
多重条件测试
xsl:apply-templates
把一个模板应用于当前的元素或者当前元素的子节点
假如我们向 xsl:apply-templates 元素添加一个 select 属性,此元素就会仅仅处理与属性值匹配的子元素。我们可以使用 select 属性来规定子节点被处理的顺序。
注意:
- 使模板应用于元素
- select的作用
- match的作用
(图片来自:https://www.w3school.com.cn/xsl/el_apply-templates.asp)
xsl:apply-imports
(图片来自:https://www.w3school.com.cn/xsl/el_apply-imports.asp)
引入一个外部的样式表,这个可以在多个文件共用部分样式的时候可以使用这种方法
xsl:attribute
向元素添加属性
- name 属性名称
xsl:attribute-set
元素可创建命名的属性集。该属性集(attribute-set)可作为整体应用到输出文档。
代码语言:javascript复制<xsl:attribute-set name="font">
<xsl:attribute name="fname">Arial</xsl:attribute>
<xsl:attribute name="size">14px</xsl:attribute>
<xsl:attribute name="color">red</xsl:attribute>
</xsl:attribute-set>
xsl:call-template
调用一个指定的模板
代码语言:javascript复制<xsl:call-template name="templatename">
<!-- Content:xsl:with-param* -->
</xsl:call-template>
xsl:choose
多重条件测试
(图片来自:https://www.w3school.com.cn/xsl/el_choose.asp)
注意:这里的variable的用法
xsl:comment
元素用于在结果树中创建注释节点。
xsl:copy
创建当前节点的一个副本
xsl:copy-of
创建当前节点的一个副本(带有子节点及属性)
代码语言:javascript复制<xsl:copy-of select="expression"/>
把相同节点的多个副本插入到输出的不同位置。
xsl:key
- use:可以是属性、子元素或者匹配元素的内容。这里的例子中应用的应该是属性。
xsl:param
声明局部或者全局参数
注释:如果在模板内声明参数,就是局部参数,如果作为顶层元素来声明,就是全局参数。
xsl:variable
声明局部或全局的变量。