xsl教程学习笔记
一 . Hello world 尝试:
Hello.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<FistNode>
Hello,World
</FistNode>
test.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>First node</title>
</head>
<body>
<p>
<xsl:value-of select="/FistNode"/>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
运行结果:
Hello,World
二 . XSLT元素列表
| 元素名 | 含义 |
| xsl:apply-imports | 调用重新模板规则 |
| xsl:apply-template | 指示XSLT处理器根据每个选定节点的类型和上下文 找到合适的模板 |
| xsl:attribute | 创建一个属性节点并将其附加到输出元素上 |
| xsl:attribute-set | 定义命名的属性集 |
| xsl:call-template | 按名称调用模板 |
| xsl:choose | 提供多个与<xsl:otherwise> 元素 和 <xsl:when> 元素有关的条件测试 |
| xsl:comment | 在输出中生成注释 |
| xsl:copy | 将当前节点从源复制到输出 |
| xsl:copy-of | 将子树和结果树片段插入结果树 |
| xsl:decimal-fomat | 声明一个小数格式,用于控制formate-number 函数所使用的格式模式解释 |
| xsl:element | 在输出中创建指定名称的元素 |
| xsl:fallback | 调用可以 为遇到的新的元素的行为 提供合适的替代行为的 模板 |
| xsl:for-each | 重复应用模板,对接点集中的每个节点应用模板 |
| xsl:if | 允许简单条件模板片段 |
| xsl:import | 导入另外一个xslt文件 |
| xsl:include | 包含另一个xsl文件 |
| xsl:key | 声明一个命名的键,用于XPath表达式中的Key()函数 |
| xsl:message | 将文本消息发送到消息缓冲区或者对话框 |
| xsl:namespace-alias | 使用其他前缀替换 与给定命名空间关联的前缀 |
| xsl:number | 将和格式化的数字插入结果树 |
| xsl:otherwise | 提供多个与<xsl:choose>元素和<xsl:when>元素有关的条件测试 |
| xsl:ouput | 指定在序列化结果树时使用的选项 |
| xsl:param | 声明一个命名参数,在<xsl:stylesheet>元素或者<xsl:template>元素中使用.允许制定默认值 |
| xsl:preserve-space | 在文档中保留空白 |
| xsl:sort | 指定<xsl:for-each>或者<xsl:apply-template>所选节点列表的排序条件 |
| xsl:stylesheet | 指定xslt文件的文档元素.文档元素包含其他XSLT元素 |
| xsl:template | 定义一个可以再次使用的模板,用于为特定类型和上下文的节点生成所需要的输出 |
| xsl:text | 在输出中生成文本 |
| xsl:transform | 执行与<xsl:stylesheet>相同的功能 |
| xsl:value-of | 将选定节点的值作为文本插入 |
| xsl:variable | 指定表达式中绑定的值 |
| xsl:when | 提供多个与<xsl:choose>元素和<xsl:otherwise>有关的测试条件 |
| xsl:with-param | 将参数传递给模板 |
| xsl:strip-space | 从文档中删除空白 |
三 xsl:template 和 xsl:apply-template
模板有2部分构成:匹配模式 和 执行.
匹配模式 指定了采用哪个模板 xsl:template
执行 指定了如何输出 xsl:apply-template
1.xsl:template语法
<xsl:template natch=pattern name=qname priority=number mode=qname>
<!—执行内容à
</xsl:template>
name:唯一的名称,便于引用
match:原节点模式 与name 必有其一
priority :-9-9的数字
mode :允许多次处理某个元素, 每次产生不同的结果. 有match就不可以有mode.
eg: test.xml
<?xml version="1.0" encoding="UTF-8"?>
<company>
<department>
<name language="Chinese">Tech Department</name>
<leader>Zhang San</leader>
<quantity></quantity>
<target>software develop</target>
</department>
<department>
<name language="Chinese">Sale Department</name>
<leader>Li Si</leader>
<quantity></quantity>
<target>Sale work</target>
</department>
</company>
(1)匹配所有的部门
<xsl:template match=”department”></xsl:template>
(2)匹配所有的领导和所有的人数元素
<xsl:template match=”leader|quantity”></xsl:template>
(3)匹配所有父节点为 部门的 领导元素
<xsl:template match=”department//leader”></xsl:template>
(4)匹配根节点
<xsl:template match=”/”></xsl:template>
2.xsl:apply-templates
语法:
<xsl:apply-templates select=node set-expression mode=qname></xsl:apply-templates>
用来 表示 哪个节点被模板具体处理.可以理解为 调用子函数 select用来选择确切的节点名字. xsl:apply-templates 总是在 xsl: template中
(1)模板匹配整个文档(根节点), 具体执行时 处理根节点下的所有部门元素.
<xsl:template match=”/”>
<xsl:apply-template select=”department”/>
</xsl:template>
(2)模板匹配 部门 节点. 具体执行时 部门下所有的子元素都将被处理
<xsl:template match=”para”>
<p><xsl:apply-template /></p>
</xsl:template>
四 xsl:value-of
用来将 文档中的元素 文本 写入到 输出文档中.
1.提取出部门中每个领导人的名字
<xsl:template match=”department”>
< xsl:value-of select=”leader”/>
</xsl:template>
xsl教程学习笔记的更多相关文章
- jfinal框架教程-学习笔记
jfinal框架教程-学习笔记 JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restfu ...
- Webpack新手入门教程(学习笔记)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
- TypeScript 入门教程学习笔记
TypeScript 入门教程学习笔记 1. 数据类型定义 类型 实例 说明 Number let num: number = 1; 基本类型 String let myName: string = ...
- JProfiler使用详细教程学习笔记
JProfiler学习笔记 推荐文章:JProfiler 入门教程 一.安装JProfiler 从http://www.ej-technologies.com/下载5.1.2并申请 ...
- Postman使用教程学习笔记
刚加入网页测试行列,最近在学习POSTman的使用教程,记录下学习笔记. Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.当开发人员需要调试一个网页是否运行正常,并不是 ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- Linux 教程学习笔记
目录 一.Linux 系统启动过程 1.分为 5 个阶段 3.shell.操作系统.内核的关系 二.Linux 系统目录结构 三.Linux 文件基本属性 1.Linux文件属性 3.更改文件属性: ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
blog.csdn.net/totogo2010/article/details/8205810 目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...
随机推荐
- git发布代码到github
git是什么? 1.git主要是用于对版本进行管理的一个系统. 2.时刻保持数据完整性:SHA-1计算 3.文件的三种状态 已提交,已修改,已暂存 对应文件流转的三个工作区域:本地仓库,Git的工作目 ...
- GitHub命名规则
● Added ( 新加入的需求 ) ● Fixed ( 修复 bug ) ● Changed ( 完成的任务 ) ● Updated ( 完成的任务,或者由于第三方模块变化而做的变化 )
- 字典树 trie树 学习
一字典树 字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种 二.性质 根节点不包含字符,除根节点以外的每一个节点都只包含一个字符: 从根节点到某一节点,路径上经过的字符串连接起 ...
- Web前端开发的基本要求和认识
Web前端开发技术包括三个要素:HTML.CSS和JavaScript,但随着RIA的流行和普及,Flash/Flex.Silverlight.XML和服务器端语言也是前端开发工程师应该掌握的.Web ...
- Linux Shell编程 cut、print命令
cut命令:查找符合条件的列 cut 命令是在文件中提取符合条件的列,虽然 cut 命令用于提取符合条件的列,但是也要一行一行地进行数据提取.也就是说,先要读取文本的第一行数据,在此行中判断是否有符 ...
- 3D图形学理论入门指南
转:http://gad.qq.com/article/detail/35096 介绍 当我还小的时候,我曾以为计算机图形学是最酷的玩意儿.但是随即我认识到,学习图形学——创建那些超级 ...
- tophat的用法
概述:tophat是以bowtie2为核心的一款比对软件. tophat工作分两步: 1.将reads用bowtie比对到参考基因组上. 2.将unmapped-reads打断成更小的fragment ...
- windows7 安装Apache2时出现failed to open the winNT service manager 提示
因为电脑实在太慢了,C盘的空间所剩无几,要想再安装大一点的软件的话,可能性很小.加之系统已经好久没有重装过了,于是重新安装windows7旗舰版,系统装好后,免不了一堆软件的重装和开发环境配置,首要的 ...
- linux系统怎么截图?linux系统中对指定区域进行截图的详细教程
windows系统的截图相当简单,方法也很多,但是linux下截图已经成为了一个老大难问题,在windows下用惯了qq截图,到了linux下没了qq,那要怎么办呢,prt sc sysrq 键全屏截 ...
- 标准库string与C风格字符串
返回字符串的长度 string标准库 #include<iostream> #include<cstring> using namespace std; int main() ...