一 . 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教程学习笔记的更多相关文章

  1. jfinal框架教程-学习笔记

    jfinal框架教程-学习笔记 JFinal  是基于 Java  语言的极速  WEB  + ORM  开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restfu ...

  2. Webpack新手入门教程(学习笔记)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...

  3. 尚硅谷韩顺平Linux教程学习笔记

    目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...

  4. TypeScript 入门教程学习笔记

    TypeScript 入门教程学习笔记 1. 数据类型定义 类型 实例 说明 Number let num: number = 1; 基本类型 String let myName: string = ...

  5. JProfiler使用详细教程学习笔记

    JProfiler学习笔记    推荐文章:JProfiler 入门教程 一.安装JProfiler        从http://www.ej-technologies.com/下载5.1.2并申请 ...

  6. Postman使用教程学习笔记

    刚加入网页测试行列,最近在学习POSTman的使用教程,记录下学习笔记. Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.当开发人员需要调试一个网页是否运行正常,并不是 ...

  7. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  8. Linux 教程学习笔记

    目录 一.Linux 系统启动过程 1.分为 5 个阶段 3.shell.操作系统.内核的关系 二.Linux 系统目录结构 三.Linux 文件基本属性 1.Linux文件属性 3.更改文件属性: ...

  9. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

随机推荐

  1. 从SignalTap II中获取“最真实”的仿真测试向量(ZZ)

         在实际工作中,经常会遇到这样的情况:在硬件调试中采用SignalTap II反复多次编译并最终捕获到问题的原因时,才会发现,原来这个问题是逻辑问题,是可以在仿真环境下发现并快速解决的.先前没 ...

  2. classmethod和staticmethod区别

    实例方法:在类中,定义的方法,这个方法的第一个参数默认是实例对象,一般习惯使用self 类方法:在类中,定义的方法,这个方法的第一个参数默认是类对象,一般习惯用cls表示,用@classmethod装 ...

  3. CRC冗余校验码的介绍和实现

    from:http://yoyo.play175.com/p/200.html 节选至百度百科: 首先,任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关 ...

  4. SpringMVC:学习笔记(4)——处理模型数据

    SpringMVC—处理模型数据 说明 SpringMVC 提供了以下几种途径输出模型数据: – ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添 ...

  5. openpyxl之excel操作

    一.读取excel中内容 1.导入模块 : from openpyxl import load_workbook 2.打开excel : workbook = load_workbook(" ...

  6. jq中ajax的dataType:"json"是指什么?

    dataType String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就 ...

  7. jQuery之DOM操作大全

    jQuery属性操作 获取元素属性的语法:attr(name) 例子:$("#img1").attr("src"); 设置元素单个属性的语法:attr(key, ...

  8. Go sqlx库

    sqlx is a library which provides a set of extensions on go's standard database/sql library. sqlx sup ...

  9. springmvc拦截器基本使用

    1.HandlerExecutionChain是一个执行链,当用户的请求到达DispatcherServlet的时候,DispatcherServlet会到HandlerMapping中查找对应的Ha ...

  10. jar 冲突解决方案

    val urlOfClass = classOf[Nothing].getClassLoader.getResource("org/slf4j/spi/LocationAwareLogger ...