http://shop.oreilly.com/product/9780596000530.do
http://shop.oreilly.com/product/9780596527211.do
http://forum.eviloctal.com/thread-40778-1-4.html
http://www.w3schools.com/xsl/xsl_transformation.asp
http://www.w3schools.com/xsl/xsl_w3celementref.asp
http://zvon.org/xxl/XSLTreference/Output/index.html
http://www.w3.org/TR/xslt
1. 文件的根
<?xml version="1.0" encoding="Utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:stylesheet>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2. 导入另一个xsl文件
<xsl:import href="Common.xsl"/>
3. 设置输出格式
<xsl:output method="text" encoding="Utf-8"/>
<xsl:output method="text" encoding="Shift_JIS"/>
4. 定义变量的值
<xsl:variable name="header">//////////////////////////////////////////////////////////////////////
// Ant により自動生成されたファイルです。
// 編集しないで下さい。
//////////////////////////////////////////////////////////////////////<xsl:text/>
</xsl:variable>
<xsl:variable name="typeMapping" select="document('TypeMapping.xml')/TypeMapping" />
5. 把变量的值写入输出
<xsl:value-of select="$header"/>
6. 声明节点匹配模板,设置输入的读取范围
<xsl:template match="Class">
</xsl:template>
<xsl:template match="Property[not(@collectionType)]">
</xsl:template>
<xsl:template match="Property[@collectionType = 'Array']">
</xsl:template>
<xsl:template match="Property[@collectionType = 'List']">
</xsl:template>
<xsl:template match="/">
7. 把普通文本写入输出
package
8. 读取节点然后写入输出
<xsl:value-of select="@package"/>
<xsl:value-of select="@comment"/>
<xsl:value-of select="@package"/>
<xsl:value-of select="@name"/>
<xsl:value-of select="translate(substring($name, 1, 1),
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
<xsl:value-of select="substring($name, 2)" />
<xsl:value-of select="catalog/cd/title"/>
<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
大小判断
= (equal)
!= (not equal)
< less than
> greater than
9. 条件输出
<xsl:if test="count(Property[@collectionType = 'List']) > 0">
</xsl:if>
<xsl:if test="@extends">
</xsl:if>
<xsl:if test="price > 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:if>
<xsl:choose>
<xsl:when test="string-length($definedType) > 0">
<!-- 定義型が見つかった場合はそれを使用する。 -->
<xsl:value-of select="$definedType"/>
</xsl:when>
<xsl:otherwise>
<!-- 定義型が見つからない場合は type属性をそのまま使用する -->
<xsl:value-of select="$type"/>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$type='boolean'">
<xsl:text>is</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>get</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="price > 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
10. 嵌套调用模板
<xsl:apply-templates select="*"/>
<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>
11. 注释
<!-- //////////////////////////////////////////////////////
// プロパティ (コレクション以外)
////////////////////////////////////////////////////// -->
12. 定义带参数的模板
<xsl:template name="getType">
<xsl:param name="type" />
</xsl:template>
13. 调用模板,把返回值赋值到另一个变量上
<xsl:variable name="getterPrefix">
<xsl:call-template name="getGetterPrefix">
<xsl:with-param name="type" select="@type"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$getterPrefix"/>
14. 链接xml到xsl(XML语法)
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
放在<?xml version="1.0" encoding="ISO-8859-1"?>后,根前。
15. 循环遍历输出XML子树
<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>
<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>
for-each排序
16. 基本元素
apply-imports
应用已导入样式表的模板规则
apply-templates
把一个模板应用到当前元素或当前元素的子节点
attribute
添加属性
attribute-set
定义属性的具名集合
call-template
调用具名模板
choose
组合when和otherwise,表示多路条件测试
comment
创建注释节点
copy
创建当前节点的复制(不带子节点和属性)
copy-of
创建当前节点的复制(带子节点和属性)
decimal-format
定义number()函数转换数字到字符串时的格式
element
创建元素节点到输出文档
fallback
指定运行的可选代码,如果处理器不支持某个XSLT元素
for-each
循环指定的节点集下的所有节点
if
条件为真时应用指定的模板
import
导入另一个样式表的内容(被导入的具有较低优先级)
include
导入另一个样式表的内容(被导入的具有相同优先级)
key
声明在样式表中用于key()的具名键
message
写输出,用于报告错误
namespace-alias
在输出中替换命名空间
number
确定当前元素的整数位置并格式化数
otherwise
choose中的默认动作
output
定义输出文档的格式
param
定于局部或全局参数
preserve-space
定义保留空白的元素
processing-instruction
把处理操作写入输出
sort
排序输出
strip-space
定义移除空白的元素
stylesheet
定义样式表的根元素
template
可应用的规则,当指定节点匹配时
text
把字面值文本写入输出
transform
定义样式表的根元素
value-of
展开样式节点的值
variable
定义局部或全局变量
when
choose中的动作
with-param
定义传递进模板的参数
17. 基本内建XSLT函数
current()
返回当前节点
document()
访问外部XML文档的节点
element-available()
测试指定的元素是否被XSLT处理器支持
format-number()
把数转为字符串
function-available()
测试指定的函数是否被XSLT处理器支持
generate-id()
返回唯一标识指定节点的字符串
key()
返回<xsl:key>中用index指定的节点集
system-property()
返回系统属性
unparsed-entity-uri()
返回未解析入口的URI
分享到:
相关推荐
在实际应用中,你可能还会遇到条件判断(`<xsl:if>`和`<xsl:choose>`)、循环(`<xsl:for-each>`)、变量(`<xsl:variable>`和`<xsl:param>`)以及导入和包含其他样式表(`<xsl:import>`和`<xsl:include>`)等功能。...
XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,它允许开发者通过定义样式表来控制XML数据的呈现方式。在XSL开发中,理解和掌握XSL函数、XSL元素以及XPath是至...
XSL-Stylesheets Source: DocBook-XSL-1.79.1
1. **XSL样式表**: 定义了如何转换XML数据。 2. **`order-by`属性**: 应用于`for-each`元素中,指示按`ARTIST`元素的值进行排序。 3. **`xsl:value-of`**: 用于输出选定节点的文本内容。 #### 实现过程 1. **加载...
XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...
### XSL基础教程知识点 #### 一、XSL与XML的关系 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于控制XML文档显示的标记语言。它主要用于将XML文档转换为其他格式,例如HTML或PDF。XSL允许...
在IT行业中,XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,而XPath(XML Path Language)则是用于在XML文档中查找信息的查询语言。JavaScript,作为Web开发中...
1. "dll编辑":虽然在描述中提到编辑器不包含DLL,但标签提及DLL编辑,可能意味着它具备处理或理解DLL文件的能力,或者至少能帮助开发者调试与DLL相关的XSL问题。 2. "xsl_xsl_debug":这暗示了编辑器可能有专门的...
1. **XSL简明教程.chm**:这是一个帮助文件,通常包含了XSL的基础知识、语法和实例。用户可以通过查阅此文件快速掌握XSL的关键概念,例如选择符、模板、变量、函数等。 2. **XSL学习.doc**:可能是作者编写的详细...
一本非常好的XSL入门教程, 分成以下几大单元 1.第一个XML文档 2.XSL入门 3.XSL模板与匹配模式 4.测试模式 5.XSL中的choose 6.运算符,关系与逻辑运算符,特殊字符等 7.XSL函数之一 8.脚本与...
【XSL:开启XML的转换之旅】 XML(Extensible Markup Language)是一种用于标记数据的语言,它使得数据结构清晰,易于机器解析和人类阅读。然而,XML文档本身并不包含任何关于如何显示这些数据的信息。这就引入了...
<xsl:variable name="array1" select="'element1'"/> <xsl:variable name="array2" select="'element2'"/> <xsl:variable name="array3" select="'element3'"/> <xsl:for-each select="$array1|$array2|$array3...
1. XML基础知识: - **语法**:XML文档遵循严格的语法规则,包括元素、属性、文本内容、注释和处理指令等。 - **命名规则**:元素和属性名必须以字母或下划线开头,不能包含空格和某些特殊字符。 - **结构**:XML...
1. 创建XML文件:XML文件是数据的源头,它以结构化的方式存储信息。 2. 编写XSL模板:根据需求编写XSL文件,定义XML元素到Excel格式的转换规则。 3. XSLT转换:使用XSLT处理器(如Saxon或Xalan)对XML和XSL进行解析...
1. **XSL基础概念** - **XSLT**:XSL Transformations,XSL的主要部分,用于转换XML文档。 - **XSL样式表(XSLT Stylesheets)**:定义了转换规则,描述如何将XML文档转换为其他形式。 - **XPath**:XML Path ...
XSL由三部分组成:XSLT(XSL Transformations)、XPath(XML Path Language)和XSL-FO(XSL Formatting Objects)。在Java环境中,处理XSL转换通常会涉及到JAXP(Java API for XML Processing)。 XSLT是XSL的主要...
1. **创建TransformerFactory对象**:这是整个转换过程的起点。使用`TransformerFactory.newInstance()`方法可以创建一个`TransformerFactory`实例,它是生成转换器的工厂类。 2. **加载XSL样式表**:接下来,你...
1. **XSLT基础**:XSLT是基于XSL的,它是一种转换语言,允许我们将XML文档转换为其他格式,如HTML、PDF或如本例中的Excel。XSLT通过匹配XML文档的结构和模式来定义转换规则。 2. **XSL样式表结构**:一个XSL样式表...
同时,"xsl的实例1"可能是实际的XSLT文件,其中包含了创建表格和滚动字效果的具体代码。 学习和掌握XSL不仅能够帮助开发者有效地处理XML数据,还可以为Web应用程序提供灵活的数据展示方式。通过深入研究“xsl的实例...
1. **理解XML结构**:首先,需要熟悉XML文档的结构和元素关系,以便确定如何在表格中呈现这些信息。 2. **编写XSLT模板**:接下来,创建XSLT文件,定义模板来匹配XML文档中的元素。每个模板对应于表格中的一个行或...