`

XSL临时笔记1

 
阅读更多

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)

&lt; less than

&gt; greater than

 

9. 条件输出

<xsl:if test="count(Property[@collectionType = 'List']) &gt; 0">

</xsl:if>

 

<xsl:if test="@extends">

</xsl:if>

 

<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:choose>

<xsl:when test="string-length($definedType) &gt; 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 &gt; 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学习笔记,入门知识

    在实际应用中,你可能还会遇到条件判断(`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`)、循环(`&lt;xsl:for-each&gt;`)、变量(`&lt;xsl:variable&gt;`和`&lt;xsl:param&gt;`)以及导入和包含其他样式表(`&lt;xsl:import&gt;`和`&lt;xsl:include&gt;`)等功能。...

    XSL开发基础参考资料

    XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,它允许开发者通过定义样式表来控制XML数据的呈现方式。在XSL开发中,理解和掌握XSL函数、XSL元素以及XPath是至...

    docbook-xsl-1.79.1.tar.bz2

    XSL-Stylesheets Source: DocBook-XSL-1.79.1

    XSL简明教程(5)

    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 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...

    网页XSL基础教程,支持XML和XSL

    ### XSL基础教程知识点 #### 一、XSL与XML的关系 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于控制XML文档显示的标记语言。它主要用于将XML文档转换为其他格式,例如HTML或PDF。XSL允许...

    xsl javascript 传递参数

    在IT行业中,XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,而XPath(XML Path Language)则是用于在XML文档中查找信息的查询语言。JavaScript,作为Web开发中...

    XSL.rar_dll编辑_xsl_xsl debug_xsl editor_xslxsl·com

    1. "dll编辑":虽然在描述中提到编辑器不包含DLL,但标签提及DLL编辑,可能意味着它具备处理或理解DLL文件的能力,或者至少能帮助开发者调试与DLL相关的XSL问题。 2. "xsl_xsl_debug":这暗示了编辑器可能有专门的...

    XSL学习3

    1. **XSL简明教程.chm**:这是一个帮助文件,通常包含了XSL的基础知识、语法和实例。用户可以通过查阅此文件快速掌握XSL的关键概念,例如选择符、模板、变量、函数等。 2. **XSL学习.doc**:可能是作者编写的详细...

    跟我学XSL

    一本非常好的XSL入门教程, 分成以下几大单元 1.第一个XML文档 2.XSL入门 3.XSL模板与匹配模式 4.测试模式 5.XSL中的choose 6.运算符,关系与逻辑运算符,特殊字符等 7.XSL函数之一 8.脚本与...

    跟我学xsl.doc

    【XSL:开启XML的转换之旅】 XML(Extensible Markup Language)是一种用于标记数据的语言,它使得数据结构清晰,易于机器解析和人类阅读。然而,XML文档本身并不包含任何关于如何显示这些数据的信息。这就引入了...

    xml xsl网页生成

    1. XML基础知识: - **语法**:XML文档遵循严格的语法规则,包括元素、属性、文本内容、注释和处理指令等。 - **命名规则**:元素和属性名必须以字母或下划线开头,不能包含空格和某些特殊字符。 - **结构**:XML...

    在XSL使用数组例子

    &lt;xsl:variable name="array1" select="'element1'"/&gt; &lt;xsl:variable name="array2" select="'element2'"/&gt; &lt;xsl:variable name="array3" select="'element3'"/&gt; &lt;xsl:for-each select="$array1|$array2|$array3...

    用XSL把XML转化在EXCEL导出

    1. 创建XML文件:XML文件是数据的源头,它以结构化的方式存储信息。 2. 编写XSL模板:根据需求编写XSL文件,定义XML元素到Excel格式的转换规则。 3. XSLT转换:使用XSLT处理器(如Saxon或Xalan)对XML和XSL进行解析...

    XSL 中文教程大全

    1. **XSL基础概念** - **XSLT**:XSL Transformations,XSL的主要部分,用于转换XML文档。 - **XSL样式表(XSLT Stylesheets)**:定义了转换规则,描述如何将XML文档转换为其他形式。 - **XPath**:XML Path ...

    xsl教程

    XSL由三部分组成:XSLT(XSL Transformations)、XPath(XML Path Language)和XSL-FO(XSL Formatting Objects)。在Java环境中,处理XSL转换通常会涉及到JAXP(Java API for XML Processing)。 XSLT是XSL的主要...

    java XSL解析器

    1. **创建TransformerFactory对象**:这是整个转换过程的起点。使用`TransformerFactory.newInstance()`方法可以创建一个`TransformerFactory`实例,它是生成转换器的工厂类。 2. **加载XSL样式表**:接下来,你...

    使用xsl导出excel源码示例

    1. **XSLT基础**:XSLT是基于XSL的,它是一种转换语言,允许我们将XML文档转换为其他格式,如HTML、PDF或如本例中的Excel。XSLT通过匹配XML文档的结构和模式来定义转换规则。 2. **XSL样式表结构**:一个XSL样式表...

    xsl的实例1.rar_Table_xsl

    同时,"xsl的实例1"可能是实际的XSLT文件,其中包含了创建表格和滚动字效果的具体代码。 学习和掌握XSL不仅能够帮助开发者有效地处理XML数据,还可以为Web应用程序提供灵活的数据展示方式。通过深入研究“xsl的实例...

    XML+xsl讲XML文档的内容用xsl建表

    1. **理解XML结构**:首先,需要熟悉XML文档的结构和元素关系,以便确定如何在表格中呈现这些信息。 2. **编写XSLT模板**:接下来,创建XSLT文件,定义模板来匹配XML文档中的元素。每个模板对应于表格中的一个行或...

Global site tag (gtag.js) - Google Analytics