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. SendMail

    public ActionResult SendMail() { MailMessage mss = new MailMessage(); mss.From = new MailAddress(&qu ...

  2. iOS:图像和点击事件

    问题:如何区分点的是哪张图片? // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 l ...

  3. (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

    特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

  4. php pdo和mysqli对比选择

    1)总的比较   PDO MySQLi 数据库支持 12种不同的数据库支持 支持MySQL API OOP OOP + 过程 Connection Easy Easy 命名参数 支持 不支持 对象映射 ...

  5. java rest接口返回不完整的json数据

    ngix配置有问题,数据量大时把部分数据给拦截了. {"userId":237,"loginName":"mingshi","us ...

  6. Class.forName()的理解

    转自:http://blog.csdn.net/yanwushu/article/details/7574713 使用jdbc方式连接数据库时会使用一句代码Class.forName(String c ...

  7. 在 ActionBar 添加刷新按钮

    在以前版本的 Gmail 应用中,ActionBar 上有个刷新菜单,点击一下刷新菜单变成一个转圈的刷新标示动画图片. 之前实现该功能的时候都是使用一个类库 RefreshActionItem来实现的 ...

  8. 14.8.2 Role of the .frm File for InnoDB Tables InnoDB 表得到 .frm文件的作用

    14.8.2 Role of the .frm File for InnoDB Tables InnoDB 表得到 .frm文件的作用 Vsftp:/data01/mysql/zjzc# ls -lt ...

  9. centos6.5静态IP和DNS设置

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0EVICE=eth0HWADDR=60:02:92:62:30:2ATYPE=EthernetBROA ...

  10. 【转】Android ROM研究---Android build system增加模块

    原文网址:http://hualang.iteye.com/blog/1141315 Android build system就是编译系统的意思 在我们需要向自己编译的源代码中增加模块的时候,需要一些 ...