`

XSLT学习笔记

阅读更多

XSL

XSL是(Extensible Style sheet Language)的缩写,是一种描述XML样式的语言。XML没有预先定义的标签,所以每个标签的寓意并不可知,XSL则用来描述XML文档如何展示。

XSL包含三部分的内容:

XSLTXML文档转换语言

XPathXML文档导航语言

XSL-FOXML文档格式语言

XSLT

XSLTXSL Transformations的缩写;用于将XML文档转换为XHTML文档或其它格式的文档;XSLTXSL的重要组成部分;XSLT使用XPath定位XML中的节点;XSLTW3C标准。

XSLT被用作转换XML文档成另一个XML文档,或者其它被浏览器所识别的文档,比如HTMLXHTML。通常XSLT做这些转换只需将每个XML节点转换为(X)HTML相应的节点。你能用XSLT增加/删除XML文档的节点或属性,也可以重排或排序节点,执行测试或决定某一节点是隐藏还是显示,等等。可以理解为将“XML源树”转换为“XML结果树”。

在转换的过程中,XSLT使用XPath来定义源文档的结构,源文档必须匹配一个或多个预定义的模板。当匹配成功是XSLT将转换源文档匹配的部分成结果文档。

根节点

<xsl:stylesheet><xsl:transform>都可以作为XSLT文档的根节点,

功能

定义文档为XLS样式表

属性
Xmlns:xsl

W3C官方指定的XSLT的命名空间为xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Version

如果使用W3C官方指定的命名空间,则值需为version=”1.0”

示例

根据W3C标准,一个XSL样式表正确的定义为:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Xsl:template元素

<xsl:template>标签用于定义模板

属性
Match

用于匹配XML源文档中的元素,也可以匹配整个XML文档。Match的值为XPath表达式(如 match=”/” 表示匹配整个XML文档)。

示例
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  </body>
  </html>
</xsl:template>

 Xsl:value-of

元素
元素

 

<xsl:value-of>标签用于提取XML元素的值,并将它加入到输出文件中。

属性
Select

Select的值也为XPath表达式

用法
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <tr>
      <td><xsl:value-of select="catalog/cd/title"/></td>
      <td><xsl:value-of select="catalog/cd/artist"/></td>
    </tr>
  </table>
  </body>
  </html>
</xsl:template>

 Xsl:for-each

元素
元素

 

<xsl:for-each>标签用于遍历指定的XML元素集合。

属性
Select

值为XPath表达式。我们也可以增加过滤条件

合法的过滤操作有:=(等于)  !=(不等于) &lt;(小于)  &gt;(大于)

用法
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

 Xsl:sort

元素
元素

 

<xsl:sort>标签嵌入到<xsl:for-each>标签中使用,用于将指定的元素集合排序。

用法

 

 

<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
      <xsl:sort select="artist"/>
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

Xsl:if

元素元素

 

 

 

语法格式<xsl:if test="expression">

  如果”expression”为真的输出结果

</xsl:if>

用法

 

<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
      <xsl:if test="price &gt; 10">
        <tr>
          <td><xsl:value-of select="title"/></td>
          <td><xsl:value-of select="artist"/></td>
        </tr>
      </xsl:if>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

 Xsl:choose

元素元素

 

 <xsl:choose>标签用于多条件判断,语法:

<xsl:choose>

  <xsl:when test="expression">

    ... some output ...

  </xsl:when>

  <xsl:otherwise>

    ... some output ....

  </xsl:otherwise>

</xsl:choose>

用法
 
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <xsl:choose>
        <xsl:when test="price &gt; 10">
          <td bgcolor="#ff00ff">
          <xsl:value-of select="artist"/></td>
        </xsl:when>
        <xsl:when test="price &gt; 9">
          <td bgcolor="#cccccc">
          <xsl:value-of select="artist"/></td>
        </xsl:when>
        <xsl:otherwise>
          <td><xsl:value-of select="artist"/></td>
        </xsl:otherwise>
      </xsl:choose>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

 Xsl:apply-templates

元素
元素

 

 

 

<xsl:apply-templates>标签应用一个模板到当前节点或者子节点。如果我们增加”select”属性,它只处理Select所匹配的子节点,我们也可以select属性来定义子节点的处理顺序。

用法
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <xsl:apply-templates/>
  </body>
  </html>
</xsl:template>
<xsl:template match="cd">
  <p>
  <xsl:apply-templates select="title"/>
  </p>
</xsl:template>
<xsl:template match="title">
  Title: <span style="color:#ff0000">
  <xsl:value-of select="."/></span>
  <br />
</xsl:template>

 

1
0
分享到:
评论

相关推荐

    XSLT自动代码生成学习笔记

    **XSLT自动代码生成学习笔记** XSLT(Extensible Stylesheet Language Transformations)是一种强大的XML转换语言,常用于将XML数据转换成其他格式,如HTML、PDF或纯文本。在软件开发中,XSLT被广泛应用于自动代码...

    XML笔记+XSLT中文入门

    通过《XML笔记》和《XSLT中文入门》的学习资料,你可以深入了解XML的语法和语义,以及XSLT的工作原理和实践技巧。《XML笔记.doc》可能包含了XML的基本概念、实例和最佳实践;而《XSLT中文入门.doc》可能详细讲解了...

    《Java JDK 6 学习笔记》配书示例

    《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...

    Nginx学习笔记

    【Nginx学习笔记】 Nginx是一款由俄罗斯开发者Igor Sysoev设计的高性能、高并发的Web服务器和反向代理服务器。最初应用于俄罗斯知名网站www.rambler.ru,随后开源,采用类BSD许可,使得全球用户都能使用。Nginx以其...

    基于JavaWebCoreNote的JavaWeb核心阶段学习笔记源码

    本项目是针对JavaWeb核心阶段的全面学习笔记源码,采用Html语言编写,并辅以CSS、Python和Shell脚本,共计包含392个文件,涵盖185个HTML页面、65张JPG图片、63个SVG图像、26个XML配置文件、21个Markdown文档、9个GIF...

    Dom4j学习教程+API+xml实用大全+xml学习笔记+htc

    标题"Dom4j学习教程+API+xml实用大全+xml学习笔记+htc"提及了几个关键主题,包括Dom4j的学习资源、API文档,以及关于XML的实用指南和学习笔记,还提到了一个名为"htc"的文件,可能是关于HTC设备或技术的文档。...

    JAVA JDK6 学习笔记

    **Java JDK6 学习笔记概述** Java JDK6(Java Development Kit 6)是Oracle公司发布的一个用于开发Java应用程序的重要工具集,包含了JRE(Java Runtime Environment)和一系列的开发和调试工具。这个版本的JDK发布...

    java学习笔记JDK6课件和课本代码

    本资料包“java学习笔记JDK6课件和课本代码”专注于JDK6版本的学习,这个版本是Java历史上的一个重要里程碑,引入了许多新特性并优化了性能。 首先,我们来了解JDK6的一些关键特性: 1. **增强的泛型**:JDK6对...

    良葛格java jdk 6.0学习笔记代码.rar

    "良葛格"的Java JDK 6.0学习笔记旨在帮助初学者和有经验的程序员深入理解这一版本的Java语言特性,以及如何利用JDK 6.0进行开发。 一、JDK 6.0主要特性 1. **自动内存管理**:Java 6引入了更高效的垃圾回收机制,...

    MLDN学习笔记 —— XML学习笔记

    XML,全称Extensible Markup Language,可扩展标记语言,是一种用于标记数据的结构化语言,...通过这些学习资料,你将能够深入理解XML的各个方面,从基础语法到高级用法,从而在实际工作中更有效地处理和利用XML数据。

    xsl学习笔记,入门知识

    学习XSL的过程中,理解XSLT的模板匹配机制至关重要。你需要掌握如何定义模板,以及`&lt;xsl:apply-templates&gt;`和`&lt;xsl:copy-of&gt;`元素的使用,它们分别用于应用模板和复制节点。此外,XPath的熟练运用也是关键,包括节点...

    xpath学习笔记 比较入门大家共享

    它被广泛应用于XML处理,如XSLT、XQuery以及XPointer等标准中。XPath通过路径表达式来选取XML文档中的元素、属性或其他类型的节点,使得我们可以方便地访问和操作XML数据。 1. XPath简介 XPath的核心在于其路径...

    corejava的学习笔记

    这份学习笔记涵盖了从操作系统基础到数据库应用的广泛主题,是Java初学者或希望巩固基础的开发者的重要资源。 1. **Unix学习基础**:Unix是许多服务器和开发环境常用的操作系统。了解Unix的基础知识,包括文件系统...

    Solr学习笔记.doc

    Solr学习笔记 Solr 是一种基于 Lucene 的搜索服务器,可以满足企业对搜索解决方案的需求。它支持层面搜索、命中醒目显示和多种输出格式,易于安装和配置,並且附带了一个基于 HTTP 的管理界面。 Solr 的主要特点...

    JAVA学习笔记JDK6课件含演示代码

    本资料集合主要关注的是JDK 6版本的学习笔记和相关课件,这一版本在2006年发布,是Java发展历程中的一个重要里程碑。 1. **Java基础知识**:Java是一种面向对象的语言,它的核心特性包括平台无关性、自动内存管理...

    JSTL参考资料+学习笔记

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP...JSTL的学习笔记对于Java开发爱好者来说是一份宝贵的参考资料,可以帮助他们快速掌握JSTL的用法并应用于实际项目中。

    nutch学习笔记之第一天初学

    ### Nutch 学习笔记之第一天初学 在IT领域,特别是搜索引擎开发和技术研究方向,Apache Nutch无疑是一个值得关注的开源项目。Nutch是Apache软件基金会的一个子项目,旨在为开发者提供一个高度可扩展且可定制化的...

    Xml高级学习笔记

    【XML 高级学习笔记】 XML(Extensible Markup Language)是一种可扩展标记语言,与HTML类似,但其设计目标是存储和传输数据,而非呈现数据。XML允许用户自定义标签,使得它成为一种自描述的语言,并且是W3C的标准...

    PHP学习笔记

    【PHP学习笔记】深入解析 PHP,全称“PHP: Hypertext Preprocessor”,是一种广泛使用的开源脚本语言,尤其适用于Web开发。与客户端JavaScript不同,PHP代码在服务器端执行,这意味着它可以处理表单数据、生成动态...

Global site tag (gtag.js) - Google Analytics