XSL
XSL是(Extensible Style sheet Language)的缩写,是一种描述XML样式的语言。XML没有预先定义的标签,所以每个标签的寓意并不可知,XSL则用来描述XML文档如何展示。
XSL包含三部分的内容:
XSLT—XML文档转换语言
XPath—XML文档导航语言
XSL-FO—XML文档格式语言
XSLT
XSLT是XSL Transformations的缩写;用于将XML文档转换为XHTML文档或其它格式的文档;XSLT是XSL的重要组成部分;XSLT使用XPath定位XML中的节点;XSLT是W3C标准。
XSLT被用作转换XML文档成另一个XML文档,或者其它被浏览器所识别的文档,比如HTML和XHTML。通常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表达式。我们也可以增加过滤条件
合法的过滤操作有:=(等于) !=(不等于) <(小于) >(大于)
用法
<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 > 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 > 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price > 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>
分享到:
相关推荐
**XSLT自动代码生成学习笔记** XSLT(Extensible Stylesheet Language Transformations)是一种强大的XML转换语言,常用于将XML数据转换成其他格式,如HTML、PDF或纯文本。在软件开发中,XSLT被广泛应用于自动代码...
通过《XML笔记》和《XSLT中文入门》的学习资料,你可以深入了解XML的语法和语义,以及XSLT的工作原理和实践技巧。《XML笔记.doc》可能包含了XML的基本概念、实例和最佳实践;而《XSLT中文入门.doc》可能详细讲解了...
《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...
【Nginx学习笔记】 Nginx是一款由俄罗斯开发者Igor Sysoev设计的高性能、高并发的Web服务器和反向代理服务器。最初应用于俄罗斯知名网站www.rambler.ru,随后开源,采用类BSD许可,使得全球用户都能使用。Nginx以其...
本项目是针对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的实用指南和学习笔记,还提到了一个名为"htc"的文件,可能是关于HTC设备或技术的文档。...
**Java JDK6 学习笔记概述** Java JDK6(Java Development Kit 6)是Oracle公司发布的一个用于开发Java应用程序的重要工具集,包含了JRE(Java Runtime Environment)和一系列的开发和调试工具。这个版本的JDK发布...
本资料包“java学习笔记JDK6课件和课本代码”专注于JDK6版本的学习,这个版本是Java历史上的一个重要里程碑,引入了许多新特性并优化了性能。 首先,我们来了解JDK6的一些关键特性: 1. **增强的泛型**:JDK6对...
"良葛格"的Java JDK 6.0学习笔记旨在帮助初学者和有经验的程序员深入理解这一版本的Java语言特性,以及如何利用JDK 6.0进行开发。 一、JDK 6.0主要特性 1. **自动内存管理**:Java 6引入了更高效的垃圾回收机制,...
XML,全称Extensible Markup Language,可扩展标记语言,是一种用于标记数据的结构化语言,...通过这些学习资料,你将能够深入理解XML的各个方面,从基础语法到高级用法,从而在实际工作中更有效地处理和利用XML数据。
学习XSL的过程中,理解XSLT的模板匹配机制至关重要。你需要掌握如何定义模板,以及`<xsl:apply-templates>`和`<xsl:copy-of>`元素的使用,它们分别用于应用模板和复制节点。此外,XPath的熟练运用也是关键,包括节点...
它被广泛应用于XML处理,如XSLT、XQuery以及XPointer等标准中。XPath通过路径表达式来选取XML文档中的元素、属性或其他类型的节点,使得我们可以方便地访问和操作XML数据。 1. XPath简介 XPath的核心在于其路径...
这份学习笔记涵盖了从操作系统基础到数据库应用的广泛主题,是Java初学者或希望巩固基础的开发者的重要资源。 1. **Unix学习基础**:Unix是许多服务器和开发环境常用的操作系统。了解Unix的基础知识,包括文件系统...
Solr学习笔记 Solr 是一种基于 Lucene 的搜索服务器,可以满足企业对搜索解决方案的需求。它支持层面搜索、命中醒目显示和多种输出格式,易于安装和配置,並且附带了一个基于 HTTP 的管理界面。 Solr 的主要特点...
本资料集合主要关注的是JDK 6版本的学习笔记和相关课件,这一版本在2006年发布,是Java发展历程中的一个重要里程碑。 1. **Java基础知识**:Java是一种面向对象的语言,它的核心特性包括平台无关性、自动内存管理...
**JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP...JSTL的学习笔记对于Java开发爱好者来说是一份宝贵的参考资料,可以帮助他们快速掌握JSTL的用法并应用于实际项目中。
### Nutch 学习笔记之第一天初学 在IT领域,特别是搜索引擎开发和技术研究方向,Apache Nutch无疑是一个值得关注的开源项目。Nutch是Apache软件基金会的一个子项目,旨在为开发者提供一个高度可扩展且可定制化的...
【XML 高级学习笔记】 XML(Extensible Markup Language)是一种可扩展标记语言,与HTML类似,但其设计目标是存储和传输数据,而非呈现数据。XML允许用户自定义标签,使得它成为一种自描述的语言,并且是W3C的标准...
【PHP学习笔记】深入解析 PHP,全称“PHP: Hypertext Preprocessor”,是一种广泛使用的开源脚本语言,尤其适用于Web开发。与客户端JavaScript不同,PHP代码在服务器端执行,这意味着它可以处理表单数据、生成动态...