1. XSLT常用元素:

1.1 <xsl:template>:创建模板
    Match属性的作用是使模板和XML元素相关联

<xsl:template match="\">......</xsl:template>

1.2 <xsl:value-of>:选取XML元素,并添加到已被转换的输出流中

<xsl:value-of select = "xpath"/>

1.3 <xsl:for-each>:循环

1.4 <xsl:sort>:对结果进行排序

<xsl:for-each select ="catalog/cd["article='Bob']">
<xsl:sort select="article"/>
.....
</xsl:for-each>

          
   在我实际练习时,发现如果select属性中若要带参数,需要按照如下语法:

<xsl:sort select="*[name()=$param1Name]" order="{$para2Name}"/>

1.5 <xsl:if>:相当于if-then 
   

<xsl:if test="price>10">
......
</xsl:if>

1.6 <xsl:choose>:相当于if-then-else 
   

<xsl:choose>
<xsl:when test="expression">
......
</xsl:when>
<xsl:otherwise>
......
</xsl:otherwise>
</xsl:choose>

2. XSLT常用函数

2.1 current():返回当前节点

  

<xsl:value-of select="current()"/>

      等效于

<xsl:value-of select="."/>

2.2 document():访问一个外部的XML文档的节点

   

<xsl:value-of select="document('other.xml')/root/xpath"/>

      实际应用中,貌似document后面的接的Xpath中不能带参数变量,例如这样会出现解析错误:"document('other.xml')/root/$paramName/ChildNode"

2.3 element-available():测试指定的元素是否能被XSLT处理器支持

   

<xsl:when test="element-available('xsl:comment')">
判断是否支持注释
</xsl:when>

2.4 format-number():数字转换为字符串

   

<value-of select="format-number(500,'#.00')"/>

2.5 function-available():测试是否支持该函数

 

<xsl:if test="function-availabel('current')">
......
</xsl:if>

2.6 generate-id():返回自增独立唯一标识,类似于SQL中的identity(1,1)

2.7 key():使用由<xsl:key>指定的索引[index],从当前文档中返回一个节点组;

  

<xsl:for-each select="key('string','object')">
......
</xsl:for-each>

2.8 system-property():返回通过name属性指定的系统属性值

   

<xsl:value-of select="system-property('xsl:version')"/>

2.9 unprased-entity-uri():返回未解析实体的URI.

3. JS传参数给XSLT:

JS中:

var xml = new ActiveXObject("MSXML2.DOMDocument");
xml.load("filename.xml");
var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
xsl.load("filename.xsl");
var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate");
xslTemplate.stylesheet = xsl;
var xslProcessor = xslTemplate.createProcessor();
xslProcessor.input = xml;
xslProcessor.addParameter("ParamName", paramValue);
xslProcessor.transform();

XSLT中:

<param name="ParamName"></param>

用$ParamName取得参数的值   

xslt语法之---基础语法的更多相关文章

  1. Python语法教程-基础语法01

    目录 1. Python应用 2. 在Linux中写python 3. Python基础语法 1. 注释 2. 变量定义及类型 3. 格式化输出 4. 用户输入 5. 运算符 6.数据转换 7. 判断 ...

  2. python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)

    一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...

  3. python语法_1基础语法概述

    http://www.runoob.com/python3 章节:教程.基础语法.数据类型.解释器.注释.运算符. 大纲 查看python版本 实现第一个python3.x程序,hello world ...

  4. python基础语法之基础语法规则以及设置

    1. 编码格式 在python3以上版本中,py文件默认采用UTF-8格式编码,所有的字符串都是unicode字符串.当然,我们也可以自己为源码文件指定不同的编码,以utf-8为例,相关代码如下所示: ...

  5. Scala语法01 - 基础语法

  6. 07_Python语法示例(基础语法,文件操作,异常处理)

    1.写程序在终端输出图形 ######## # # # # ######## print("#" * 8) print("#" + " " ...

  7. 3.Scala语法01 - 基础语法

  8. JSP/Servlet基础语法

    相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...

  9. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

随机推荐

  1. FTP原理和cent OS vsFTPd架设

    1.ftp为明码传输 2.客户端和服务端采用两条链路来分别进行命令和数据的传输.数据传输的模式分为主动链接和被动链接. 3.客户端在需要数据的时候,会告知服务器端采取主动或者被动的方式来链接. 4.如 ...

  2. C语言中.h和.c文件解析

    整理自C语言中.h和.c文件解析(很精彩) Part.1(林锐<高质量C/C++编程>) 通过头文件来调用库功能.在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的 ...

  3. 使用2to3将代码移植到Python 3-转

    http://m.blog.csdn.net/blog/merryken/9104199# ❝ Life is pleasant. Death is peaceful. It’s the transi ...

  4. 关于java、Android中Math的一些用法

    java.math.Math类常用的常量和方法: Math.PI 记录的圆周率Math.E记录e的常量Math.abs 求绝对值Math.sin 正弦函数 Math.asin 反正弦函数Math.co ...

  5. Delphi ADOQuery的速度优化 转

      今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQu ...

  6. HDU-4570 Multi-bit Trie

    http://acm.hdu.edu.cn/showproblem.php?pid=4570 Multi-bit Trie Time Limit: 2000/1000 MS (Java/Others) ...

  7. php表单提交方法汇总

    问题:网页上提交表单之后,PHP为什么不能获取提交的内容?然而在老版本的PHP上运行却正常. 新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交的表单的内容直接复制到一个同名变量中.解决办法有 ...

  8. 【PHP】将EXCEL表中的数据轻松导入Mysql数据表

    在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在“phpmyadmin”中建立数据库与表(数据库:excel,数据表:excel01,字段 ...

  9. Service的两种启动方法

    刚才看到一个ppt,介绍service的两种启动方法以及两者之间的区别. startService 和 bindService startService被形容为我行我素,而bindService被形容 ...

  10. 字符集(CHARACTER SET)和校对集(COLLATE)

    http://blog.sina.com.cn/s/blog_9707fac301016wxm.html http://www.th7.cn/db/mysql/201412/84636.shtml 从 ...