读书人

XSLT扩张样式表转换语言

发布时间: 2012-07-01 13:15:00 作者: rapoo

XSLT扩展样式表转换语言

1.简介

?

XSLT(XML StyleSheet Language Transformations)扩展样式表转换语言,用于将XML文档转换为其它类型的文本文档,如HTML。

?

它起始于XSL(XML StyleSheet Language),结束于XSLT、XPath以及XSL-FO。

?

XSL对于XML就相当于CSS对于HTML。XSL包含三个部分:XPath、XSLT、XSL-FO。

XPath:一种用于在 XML 文档中导航的语言。

XSL-FO:一种用于格式化 XML 文档的语言。

?

2.工作原理

?

XSLT使用XPath在XML文档中查找信息,通过添加,删除或者重新排列元素的方式把源XML转化为目标文档。

?

3.使用?

--先看一个例子,将下述两个文件放在同一目录下,用浏览器打开。

cdcatalog.xsl

?cdcatalog.xml

?

--分析

XSL文件一般以xsl作为后缀,实质为一XML文件。

根元素

?或者

?

XML使用对应的XSLT需要进行引用,方法如下。

?

--几个重要的XSL元素

----<xsl:template>

用于构建模板,XSL由一个或多个模板规则组成。

match属性用于关联XML元素和模板,值为XPath表达式,如"/"代表整个文档。

即通过match属性确定对XML中的某个元素应用某套模板规则。

?

----<xsl:value-of>

用于提取某个选定节点的值,并把对应的值输出都结果文档中。

select属性用于定位节点,为一XPath表达式,以"/"开头时表示绝对位置,否则表示相对位置。

?

----<xsl:for-each>

用于在XSLT中进行循环。

select属性用于定位要循环的目标节点,为一XPath表达式,可以使用XPath进行过滤。

?

----<xsl:sort>

位于<xsl:for-each>内部,用于对列表进行排序。

select属性指示需要排序的XML元素,为一XPath表达式。

?

----<xsl:if>

用于条件判断

test属性为条件表达式,如price > 10表示price元素的值大于10

?

----<xsl:choose><xsl:when><xsl:otherwise>

相当于if...else if...else...,用于多重条件判断。

xls:when中的test元素为条件表达式。

?

----<xsl:apply-templates>

用于把一个模板应用于当前的元素或者当前元素的子节点

select用于指定要处理的节点。

通常用于结构化XSL文件。

?

----<xsl:variable>

用于声明局部或全局的变量

如果被声明为顶层元素,则该变量是全局的,而如果在模板内声明,则变量是局部的

name属性为变量名

select属性为变量值,也可通过<xsl:value-of/>等方式的文本节点来对其赋值。

--<xsl:variable name="id" select="'test'"/>

--<xsl:variable name="id">
?????<xsl:value-of select="Product/Id"/>
???</xsl:variable>

获取值时在变量名前加一个$即可

<xsl:value-of select="substring($id,3)"/>

?

----<xsl:copy-of>

创建当前节点的一个副本,当前节点的 Namespace 节点、子节点以及属性都会被自动复制?

select属性,必须,指定要COPY的节点。

?

----使用时可使用XSLT内置函数和XPath函数。

?

4.参考资料

?

http://www.w3school.com.cn/xsl/

?

读书人网 >Web前端

热点推荐