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

原创 2012年03月28日 16:44:23

分支处理

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 />

 

XSLT - 利用template实现for循环

ForLoop.xslt: [html] view plaincopyprint? xml version="1.0" encoding="utf-8"?>...
  • u012764241
  • u012764241
  • 2014年12月12日 17:16
  • 1193

在 XSLT 中用递归实现循环

原文地址:https://www.ibm.com/developerworks/cn/xml/x-tiploop.html 扩展 XSLT 能力的技术 XSLT 是一种函数式编程语...
  • u010523770
  • u010523770
  • 2017年05月04日 22:41
  • 357

基于xslt的简单应用开发

1.应用场景(爬虫,应用系统转换合并,xml,html) 2.实现现代码 基本转换实例:通过xslt转换xml为html; 基本语法应用实例:变量,循环,条件,模板(方法),参数; 结...
  • paolei
  • paolei
  • 2015年10月12日 20:12
  • 1708

通过XSLT转换XML

一 介绍 XSLT是一种用来转换XML文档结构的语言,它是EXtensible Style Language Extensions Transformations的缩写。 XSLT类似与HTML中...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 10:47
  • 489

[XML]学习笔记(八)XSLT

一、XSL(eXtensible Stylesheet Language)扩展样式表语言:主要包含三个部分——XSLT用于XML文档转换,XPath用于在XML文档中导航,XSL-FO用于XML文档格...
  • CristianoJason
  • CristianoJason
  • 2016年05月20日 00:45
  • 4372

XSLT解析JSON字符串

这两天呗XSL类问题搞的焦头烂额,不过总是解决了问题。 给定一个JSON串怎么进行对其解析呢?串如下: [{"TriggerVal":"10001510","TargetItemNo":"1879...
  • Grit_ICPC
  • Grit_ICPC
  • 2017年07月05日 15:13
  • 291

XSLT的元素语法

XSLT的元素语法 xsl:template和xsl:apply-templates  xsl:value-of  xsl:for-each  xsl:if  Xxsl:choose, wh...
  • iongzhidun2
  • iongzhidun2
  • 2016年09月23日 16:15
  • 56

正则表达式在XSLT2.0中的运用实例. analyze-string tokenize()

XSLT2.0相比XSLT1.0一个很大的进步是增强了正则表达式运用. 下面主要讲下: 元素. 通过select指定进行匹配的数据源,regex则提供对应的正则表达式的表示. 当匹配结果为tru...
  • rickylin86
  • rickylin86
  • 2016年08月29日 21:01
  • 790

XSLT 参数与变量

出处:微软文档 在理想情况下,XSLT 筛选器是一个“黑匣子” - 这个筛选器将获取一个或多个输入并创建一个或多个输出。您并不需要知道“黑匣子”里发生了什么。在函数中,将信息传递到黑匣子中是由参...
  • yintianqin
  • yintianqin
  • 2017年01月23日 09:39
  • 570

XSLT常用元素及属性

XSLT 语言:    XSL/XSLT是一种xml语言转换。XSL(eXtensible Style sheet Language)是XML的样式表语言。    它包含三个部分:转换XML文档以及定...
  • zhouminjob120
  • zhouminjob120
  • 2015年08月25日 14:55
  • 818
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习笔记——XSLT控制相关元素
举报原因:
原因补充:

(最多只允许输入30个字)