XML学习笔记(上)"/>
好学IT学院:IT信息技术分享交流平台
标签:环境  来源:互联网  作者:本站整理  发布时间:2007-05-12  ★★★加入收藏〗〖手机版
摘要:关于XML学习笔记的上部分请见:XML学习笔记(上)…

关于XML学习笔记的上部分请见:XML学习笔记(上)

Chapter 6. 样式表

Table of Contents
6.1. XSLT
6.2. XPath
6.2.1. 匹配模式
6.2.2. XPath轴
6.2.3. 谓词
6.2.4. XPath表达式
6.2.5. XPath函数
6.3. XLink

样式表可帮我们解释XML文档中各元素的具体意思,所以通过样式表可直接在浏览器上显示XML文档。目前主要的样式表语言有:

CSS1(Cascading Stylesheets Level 1,层叠式样式表1)
  CSS2(Cascading Stylesheets Level 2,层叠式样式表2)
  XSLT(XSL Transformations 1.0 XSL 转换 1.0)

在XML文档在序言部分通过xml-stylesheet处理指令可指定关联的样式表。xml-stylesheet指令必须有一个href属性和type属性。href指向样式表的URL,type指定样式表的MIME类型:对CSS为text/css,对于XSLT为text/xml或application/xml。下面是一个简单的使用样式表的XML文档:

<?xml version="1.0"?>
<?xml-stylesheet href="test.css" type="text/css"?>
...

除以上两个必须的属性外,还有4种可选属性:

media,标识该样式应用于什么媒体,如报纸(paper)、计算机监视器(screen)、电视(tv)或所有(all)。
  charset,指明样式表采用字符集编码方式,如:utf-8。
  alternate,指明是否有可选的样式表,默认为no,表明是主样式表,如果为yes,则是备用样式表。
  title,在有alternate的前提下,title用于指定不同样式表的标题。如:

<?xml-stylesheet href="big.css" type="text/css" alternate="yes" title="Large fonts"?>
<?xml-stylesheet href="small.css" type="text/css" alternate="yes" title="Small fonts"?>
<?xml-stylesheet href="medium.css type="text/css" title="Normal fonts"?>     #默认的主样式表

样式表现在已成为Web应用中的一个关键技术,它的作用主要体现在以下三个方面:

设计一个样式表可以应用于多个文档。样式表可以存在于XML文档外,XML文档可通过链接使用样式表。这意味着如果你有几千个文档,都可以链接到同一个样式表中,改变一个样式表等于改变几千个文档的显示效果。

实现内容和表现的分离,增强文档的一致性和可维护性。通过单一的样式表,实现所有文档显示的一致。如果显示样式有变动,我们只需维护有限的几个样式表就可以了。

实现一个文档,多个样式。通过样式表,可把一篇文档以HTML形式、PDF形式或文本形式显示出来。

6.1. XSLT

XSLT是XSL的一部份,它是XML的一种应用,指定将一篇XML文档转换成另一种XML文档的规则。XSLT文档即是一篇XML文档,也是一个样式表,里面包含一系列的模板。XSLT处理器对输入XML文档中的元素和样式表中的模板进行比较,如果匹配,则将该模板的内容写入一个输出树中。完成处理后,将输出树串行化成一篇XML文档或其它格式的文档,如HTML或者rtf。

XSLT几个关键术语

源树,原始文档中的元素和元素内容的树。
  结果树,转换之后中文档中的元素和元素内容的树。
  模板规则,XSLT样式表的基础,分为模式和模板两部份。整个xsl:template元素。
  模式,表示源树中的元素与模式规则匹配的条件集合。xsl:template中的match的值。
  模板,表示当应用模板规则时,结果树中要实例化的部份。xsl:template元素中的内容。

XSLT定义了35个元素,分为三类:

两个根元素

xsl:stylesheet根元素,XSLT也是一个XML文档,该文档的根元素就是xsl:stylesheet。XSLT元素都属于名称空间xmlns:xsl="http://www.w3.org/1999/XSL/Transform",所以所有的XSLT元素都有xsl前缀。一个最小化XSLT文档:

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

xsl:transform元素,作用同上。

13个顶级元素,可直接作为根元素的子元素,包括:

xsl:apply-imports
xsl:attribute-set
xsl:decimal-format
xsl:import
xsl:include
xsl:key
xsl:namespace-alias
xsl:output
xsl:param
xsl:preserve-space
xsl:strip-space

xsl:template模板元素,用于匹配XML文档中的元素。如:<xsl:template match="person">,匹配XML文档中的person元素。

xsl:variable

20个指令元素

xsl:apply-imports
xsl:apply-template应用模板元素,用于显示指定的元素值(内容)。如:<xsl:apply-template select="name">,显示name元素的值。
xsl:attribute
xsl:call-template
xsl:choose
xsl:comment
xsl:copy
xsl:copy-of
xsl:element
xsl:fallback
xsl:for-each
xsl:if
xsl:message
xsl:number
xsl:otherwise
xsl:processing-instruction
xsl:text
xsl:value-of选择元素,用于计算元素的值(内容)。如:<xsl:value-of select="name">,获得XML文档中name元素的值(内容)。
xsl:variable
xsl:when

XSLT函数

数据库指南:关于DB2常用技巧解析
  DB2数据库操作是开发人员经常接触到的,是我们最常用的数据库之一,下面就教您一个DB2删除数据时的小技巧,如果您对DB2删除数据方…
  • 好学触屏公众号虎力全开、杨帆起航!
  • 好学考试H5触屏版开放内测