xslt语法之---基础语法
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语法之---基础语法的更多相关文章
- Python语法教程-基础语法01
目录 1. Python应用 2. 在Linux中写python 3. Python基础语法 1. 注释 2. 变量定义及类型 3. 格式化输出 4. 用户输入 5. 运算符 6.数据转换 7. 判断 ...
- 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 ...
- python语法_1基础语法概述
http://www.runoob.com/python3 章节:教程.基础语法.数据类型.解释器.注释.运算符. 大纲 查看python版本 实现第一个python3.x程序,hello world ...
- python基础语法之基础语法规则以及设置
1. 编码格式 在python3以上版本中,py文件默认采用UTF-8格式编码,所有的字符串都是unicode字符串.当然,我们也可以自己为源码文件指定不同的编码,以utf-8为例,相关代码如下所示: ...
- Scala语法01 - 基础语法
- 07_Python语法示例(基础语法,文件操作,异常处理)
1.写程序在终端输出图形 ######## # # # # ######## print("#" * 8) print("#" + " " ...
- 3.Scala语法01 - 基础语法
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
随机推荐
- PHPStorm——配置修改
字体修改: FiraCode字体:https://github.com/tonsky/FiraCode 1.双击安装字体 2. 关闭错别字检测
- 学习Swift -- 泛型
泛型 泛型代码可以让你写出根据自我需求定义.适用于任何类型的,灵活且可重用的函数和类型.它的可以让你避免重复的代码,用一种清晰和抽象的方式来表达代码的意图. 泛型所解决的问题 先来看一个交换两个int ...
- iOS 必备技术点
IOS面试问题总结 分类: IOS开发2013-11-20 17:26 5873人阅读 评论(1) 收藏 举报 目录(?)[+] 通过网络搜寻和自己总结经历找了一些IOS面试经常被问道的问题: ...
- 一个C++程序员学习C#语言
感悟:C++是一门语法非常严谨的语言,只是指针就很难掌握,这其中肯定要经历很多折腾,特别是自学者. 折腾了一年半的C++,在即将毕业之际,对Unity3d游戏开发感兴趣,先是用cocos2dx开发了个 ...
- OpenJDK与HashMap
OpenJDK的非堆JDK增强提议(JDK Enhancement-Proposal,JEP)试图标准化一项基础设施,它从Java6开始,只能在HotSpot和OpenJDK内部使用.这种设施能够像管 ...
- GConf 错误:联系配置服务器失败;某些可能原因是需要为 ORBit 启用 TCP/IP 联网
http://blog.csdn.net/heirenheiren/article/details/8107294 http://blog.sina.com.cn/s/blog_8097f8aa010 ...
- qt5使用curl实现文件下载的示例程序 good
http://blog.csdn.net/xueyushenzhou/article/details/51702672#t3 http://download.csdn.net/detail/xueyu ...
- SpringMVC+Json构建基于Restful风格的应用(转)
一.spring 版本:spring-framework-3.2.7.RELEASE 二.所需其它Jar包: 三.主要代码: web.xml <?xml version="1.0&qu ...
- java数组遍历——iterator和for方法
import Java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayTest ...
- 2.5.4 使用popupWindow
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...