zoukankan      html  css  js  c++  java
  • XSL(转)

    XSL(eXtensible Style Languge)是描述XML文件样式信息的一种语言,是由W3C制定的。

     我们知道,XML的一个优点就是形式与内容相分离,这使得XML文件具有简洁、易读的特点。它的样式信息都包含在称之为样式单的样式文件中,而XSL就是它的两种样式单的其中之一。另一种是已经运用在HTML中的层叠式样式单CSS,是一种静态的样式描述格式,本身不遵从XML的语法规范。而XSL就不同了,它本身就是一个XML文件,因此系统可以使用同一个XML解释器对XML文档及其相关的XSL文件进行解释处理。

     XSL由两部分组成,一部分是XSLT和XPATH,这部分定义了如何将一个XML文件转换为其它的可供显示或打印的文件格式。另一部分是FO,为转换后文件中的各个对象定义语义和显示方式。这两部分的发展已经不同步,前一部分已经成为标准,而后一部分还存在较大的争议,尚在讨论之中。现在一般所说的XSL大都指的是XSLT。

     使用XSL显示XML的基本思想是通过定义模板将XML源文件转换为带样式信息的可浏览文件。模板可以是HTML格式、带CSS的XML格式及FO格式。

     XSL最初是由Microsoft公司提出来的,因此它对XSL的支持也比较好,IE5就已经支持XSL。

     在XML中使用如下语句声明XSL样式单:

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

    二.一个XSL例子

     在这里举一个学生花名册的例子,用于说明XSL的转换过程。XML原代码如下:

    <?xml version="1.0" encoding="GB2312" ?>
    <?xml-stylesheet type="text/xsl" href="学生.xsl"?>
    <学生花名册 xmlns: 学生="学生.dtd" >
    <学生>
    <姓名> 李华 < /姓名>
    <籍贯> 河北 < /籍贯>
    <年龄> 14 < /年龄>
    <电话> 62875555 < /电话>
    < /学生>
    <学生>
    <姓名> 张三 < /姓名>
    <籍贯> 北京 < /籍贯>
    <年龄> 14 < /年龄>
    <电话> 62875555 < /电话>
    < /学生>

    下面是XSL源代码:

    <?xml version= 1.0 Encoding="gb2312" ?>
    &ltxsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40">
    &ltxsl:template>
    &ltxsl:apply-templates/>
    </xsl:template>
    &ltxsl:template match="/">
    &ltHTML>
    &ltHEAD>
    &ltTITLE>学生花名册</TITLE>
    &ltSTYLE> .title{font-size:15pt; font-weight:bold; color:blue } .name{color:red} </STYLE>
    </HEAD>
    &ltBODY>
    &ltp class="title" >学生花名册</p>
    &ltxsl:apply-templates select="学生花名册"/>
    </BODY>
    </HTML>
    </xsl:template>
    &ltxsl:template match="学生花名册">
    &ltTABLE BORDER="1">
    &ltTHEAD>
    &ltTD> &ltB>姓名 </TD>
    &ltTD> &ltB>籍贯 </TD>
    &ltTD> &ltB>年龄 </TD>
    &ltTD> &ltB>电话 </TD>
    </THEAD>
    &ltxsl:for-each select="学生" order-by="姓名">
    &ltTR>
    &ltTD>&ltB>&ltxsl:value-of select="姓名"/></TD>
    &ltTD>&ltxsl:value-of select="籍贯"/></TD>
    &ltTD>&ltxsl:value-of select="年龄"/></TD>
    &ltTD>&ltxsl:value-of select = "电话"/></TD>
    </TR>
    </xsl:for-each>
    </TABLE>
    </xsl:template>
    </xsl:stylesheet>
  • 相关阅读:
    java 面向对象(二十二):关键字:final
    The Loss of Bounding Box Regression
    五大经典算法
    二叉树的深度优先遍历(前序、中序、后序)
    faster R-CNN中anchors 的生成过程
    快速排序
    __init__()
    好博客
    Focal Loss for Dense Object Detection(RetinaNet)(代码解析)
    Python获取 当前目录、上一级目录
  • 原文地址:https://www.cnblogs.com/lingxzg/p/497762.html
Copyright © 2011-2022 走看看