Practice is the best of all instructors

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1. 样式表简介

XML是程序间交换数据的简单而标准的方法,并不包含显示信息。可以通过样式表定义XML的数据显示方式,将XML数据与其显示的表达形式分开。W3C给出了两种样式表语言标准,一种是级联样式表CSS(Cascading Style Sheets),另一种是可扩展样式语言 XSL (eXtensible Stylesheet Language),下面对这两种样式表做简单介绍。


2. CSS
样式表

级联样式表CSS是一种样式描述规则,是针对HTML而提出的样式表语言,也可以用于描述XML文档的显示。请看一个示例先:
book.xml

<?xml version="1.0" encoding="gb2312"?>

<?xml-stylesheet type="text/css" href="book.css"?>

<book>

    <name>The C++ Standard Library</name>

    <author>Nicolai M.Josuttis</author>

</book>


book.css

book {

    color: navy;

    background-color: white;

    display: block;

}

name {

    display: block;

    font-family: Arial, Helvetica, sans-serif; font-size: 32pt;

    width: 30em;

    color: red;

}

author {

    display: block;

    font-size: 20pt;

    color: blue;

}



XML 文档中使用如下指令来引用CSS样式表:

<?xml-stylesheet href=”book.css”  type=”text/css”?>


XML
解析器解析XMLCSS文件,过程如下:

·         解析book.xml,抽取其元素。

·         使用book.css文件,应用样式格式化XML文档中的元素。


3. XSL
样式表简介

XSL是一种用来转换XML文档的样式表,它包括结构转换(XSLT)和格式化输出(XSL-FO)两部分。在结构转换的过程中,XSL通过XPath来查找和定位XML文档中的信息。XPath是一种专门用来在XML文档中查找信息的语言,用来描述如何识别、选择、匹配XML文档中的各个元素。XML通过XSLTXPath,可以把XML转换成任何一种文档,当然也包括HTML文档。

 
4.
XSL的基本结构

我们先来看一下例子来了解XSL的基本结构:
book.xml

<?xml version="1.0" encoding="gb2312"?>

<?xml-stylesheet type="text/xsl" href="book.xsl"?>

<books>

    <book>

        <name>The C++ Standard Library</name>

        <author>Nicolai M.Josuttis</author>

    </book>

    <book>

        <name>The Mythical Man-Month</name>

        <author>Frederick P Brooks Jr.</author>

    </book>

    <book>

        <name>C# Design Pattern</name>

        <author>James W. Cooper</author>

    </book>

</books>


book.xsl

<?xml version="1.0" encoding="gb2312"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

    <xsl:template match="/">

        <html>

            <head><title>Book Store</title></head>

            <body>

                <h2 align="center">Book Store</h2>

                <xsl:apply-templates select="books"/>

            </body>

        </html>

    </xsl:template>

    <xsl:template match="books">

        <table border="1" cellpadding="0" align="center">

            <tr><th>Name</th><th>Author</th></tr>

            <xsl:for-each select="book">

                <tr>

                    <td><xsl:value-of  select="name"/></td>

                    <td><xsl:value-of  select="author"/></td>

                </tr>

            </xsl:for-each>

        </table>

</xsl:template>

</xsl:stylesheet>


分析上面的例子,可以看出
XSL文件由以下几部分组成:

·         XSL文档也是XML文档,所以第一行要有XML声明:

<?xml version="1.0" encoding="gb2312"?>

·         接下来是XSL声明:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<!--模板规则-->

<!--输出模板-->

</xsl:stylesheet>


XSL声明中包含模板,模板中定义XML的输出格式。

 

需要注意的几个地方:

·         XSL本身是XML文档,注意标签的匹配。

·         <xsl:stylesheet>既是XSL的声明,也是根元素,要放在文件的首部。

·         要用xmlns指明XSL的命名空间:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

·         样式表中的所有模板都由<xsl:template>声明,模板可以说明处理的对象,处理方式或是转换的结果。

posted on 2007-05-10 23:53  yank  阅读(2558)  评论(0编辑  收藏  举报