学习笔记——XSLT控制相关元素

分支处理

1:<if.../>:使用时,指定以个test属性,属性值为一个布尔表达式,元素内容为模板内容。

<xsl:if test=boolean-expression>
	<!-- Content: template -->
</xsl:if>

 

2:<choose.../>、<when.../>和<otherwise.../>分别相当于java中if、else if、else

<xsl:choose>
	<xsl:when test=boolean-expression>
	<!-- Content: template -->
	</xsl:when>
	<xsl:when test=boolean-expression>
	<!-- Content: template -->
	</xsl:when>
	...
	<xsl:otherwise>
	<!-- Content: template -->
	</xsl:otherwise>
</xsl:choose>

循环控制

<!-- Category: instruction -->
<xsl:for-each
  select = node-set-expression>
  <!-- Content: (xsl:sort*, template) -->
</xsl:for-each>

 

<for-each../>:需指定一个select属性,属性值为XPath表达式,表示一个节点集,其将依次迭代节点集内的每个节点。

<for-each select="">
	<!-- Content: template -->
</for-each>

 

<for-each.../>有显式迭代功能,而<apply-templates.../>具有隐式迭代功能。

 

排序控制

<xsl:sort
  select = string-expression
  lang = { nmtoken }
  data-type = { "text" | "number" | qname-but-not-ncname }
  order = { "ascending" | "descending" }
  case-order = { "upper-first" | "lower-first" } />

 

lang:指定排序关键字,若未指定,将根据系统环境来确定。

date-type:指定字符串的数据类型,有以下可选属性值:

    text:按照字母顺序排序,通过lang属性指定;

    number:将排序关键字转换成数值,在根据数值进行排序,通过number函数转换,忽略lang属性;

    QName:展开扩展名称,标识该数据类型。

order:指定使用升序排列还是降序排列,默认是升序排列。

case-order:指定大写字母和小写字母那个应该放到前面。

 

<sort../>需要在<for-each.../>或<apply-templates.../>中使用,一次可使用多个<order../>元素,第一个<order.../>的优先级别最高,之后优先级别依次降低。

 

控制空白的处理方式

 

<preserve-space.../>:保留空白。

<strip-space.../>:删除空白;

 

这两个元素都是根元素的子元素,使用时需指定elements属性的属性值,该属性是以一个token类型的属性,可接受多个元素名或通配符“*”,用于控制这些元素的空白。

 

<!-- Category: top-level-element -->
<xsl:strip-space
  elements = tokens />

<!-- Category: top-level-element -->
<xsl:preserve-space
  elements = tokens />

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值