XSL、XSLT

2021-05-08 11:17:26 浏览数 (1)

  • 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

声明局部或全局的变量。

0 人点赞