`
isiqi
  • 浏览: 16073145 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

XML之样式表[转载]

阅读更多
XML是一种电脑程序间交换原始数据的简单而标准的方法,然而基于XML的数据本身并不包含数据显示的信息。样式表是一种专门描述结构文档表现方式的文档,即可以描述这些文档如何在屏幕上显示,也可以描述它们的打印效果,甚至声音效果。
使用样式表定义XML文档数据的显示方式,将XML数据与其表达分离的做法符合业界提倡的数据或内容与表示层分开的思想。这样一来,XML格式或文档不会重蹈某些HTML文档结构混杂,内容繁乱的覆辙。XML的编写者也可以集中于数据本身,而不受显示方式的细枝末节的影响。不仅如此,样式表还带来另一个好处,即定义不同的样式表可以使相同的数据呈现不同的显示外观,从而适合不同应用,甚至能够在不同的显示设备上显示。这样,XML数据就可以得到很大程度上的重用性,满足不同的应用需求。
W3C给出了两种样式表语言的推荐标准:CSSCascading Style Sheets,级连样式表语言,XSL extensible Style sheet,可扩展样式表语言。
CSS
级连样式表语言CSS是一种样式描述规则,是一种针对HTML而提出的样式表语言,现在同样可以很好地应用于描述XML文档的显示,利用CSS,我们可以定义HTMLXML文档中元素的显示效果,包括元素的位置,颜色,背景,边框,字体,排版格式等等。
<?xml-stylesheet type=”text/css” href=”CSS样式表文件路径”?>
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="hello.css"?>
<xsampdoc>
<greeting>Hello,<extension>there!</extension></greeting>
<answer class="ans">
<extension>Good morning!</extension>
<question>How are you?</question>
</answer>
</xsampdoc>
hello.css
xsampdoc
{
margin-top:.7in;
margin-bottom:.7in;
margin-left:1.5in;
margin-right:1in;
color:navy;
background-color:white;
display:block
}
greeting
{
display:block;
font-size: 32pt;
width: 30em;
color: red
}
question
{
display:block;
font-size: x-large;
color: black
}
answer.ans
{
display: block;
font-size: 20pt;
color: blue
}
 
XSL
XSL是一种用来转换XML文档的样式表,它包含转换和格式化XML文档的规则。
XSL在转换XML文档时分为明显的两个过程:首先转换文档结构,然后将文档格式化输出。这两个步骤可以分离开单独处理,因此在XSL发展过程中逐渐分裂为两种分支:XSLT(结构转换)和XSL-FO(格式化输出)。其中XSL-FO的作用类似于CSSHTML中的作用,但是发展还不成熟,这里不做介绍。
Xpath是一种专门用在XML文档中查找信息的语言,用来如何描述如何识别,选择,匹配XML文档中的各个构成元件,包括元素,属性,文字内容等。Xpath隶属XSLT,因此,我们通常会将XSLTXpath语法混在一起说。XML是数据库,XPath就是SQL语言,XML是文件系统,XPath就是目录导航命令
XSL包含XSLTXpath的强大功能,从而可以把XML文档转换成任何一种其它格式的文档,例如XNL文档,HTML文档,XHTML文档,VRML文档,SVG文档。
XSL的基本语法
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<roster>
<student ID="101">
<name>李华</name>
<sex></sex>
<birthday>1978.9.12</birthday>
<score>92</score>
<skill>Java</skill>
<skill>Oracle</skill>
<skill>C Sharp</skill>
<skill>SQL Server</skill>
</student>
<student ID="102">
<name>倪冰</name>
<sex></sex>
<birthday>1979.1.12</birthday>
<score>89</score>
<skill>Visual Basic</skill>
<skill>SQL Server</skill>
<skill>ASP</skill>
</student>
<student ID="103">
<name>张君宝</name>
<sex></sex>
<birthday>1982.9.9</birthday>
<score>98</score>
<skill>C Sharp</skill>
<skill>SQL Server</skill>
<skill>UML</skill>
</student>
</roster>
student.xsl
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<title>学生成绩单</title>
</head>
<body>
<h2 align="center">学生成绩单</h2>
<table border="1" cellpadding="0" align="center">
<tr><th>姓名</th><th>性别</th><th>生日</th><th>成绩</th></tr>
<xsl:for-each select="/roster/student">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="sex"/></td>
<td><xsl:value-of select="birthday"/></td>
<td><xsl:value-of select="score"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSL本身是结构完整的XML文档,所以在书写时要注意标签的匹配问题。<xsl:stylesheet>即是XSL的声明语句,也是跟元素,必须位于文件的首部,通常也要利用xmlns属性指明XSL的命名空间。样式表中所有的模板都有标签<xsl:template>标明,模板可以说明处理的对象(元素,属性),处理的方式或是转换的结果。
XSL模板
XSL文件是由模板组成的,一个XSL文件至少包含一个买办。可以把XSL的设计细化成一个个模板,最后再将这些模板组合成一个完成的XSL。这种方法如同程序中模块化设计细化一样,可以使你先从整体上考虑整个XSL的设计,然后将一些表现形式细化成不同的模块,再具体设计这些模块,最后将他们整合在一起。
定义一个模板:<xsl:template match=”匹配模式”>
调用一个模板:<xsl:apply-templates select=”模式”>
XSL通过<xsl:if>,<xsl:for_each>,<xsl:choose>,<xsl:sort>语句对文档内容过滤,排序输出。
CSSXSL比较
用途不同:CSS主要针对HTMLXSL具备CSS无法达到的功能,如用命令将一个XML文档转换为另一个文档并存盘。
处理结果不同:XSL采用一种转换的思想,它将一种不含显示信息的XML文档转换为另一种可以用某中浏览器浏览的文档,转换湖的输出码或者存为一个新的文档,或则暂存于内存中,但都不修改源代码。而CSS没有任何转换动作,只是针对结构文档中的各个成分,依照样式规定一一设定外观式样,再由浏览器依据这些式样显示文档,整个过程没有任何新码产生。
表现能力不:XSL支持排序,超连结等等。
语法不同:CSS自成体系,XSL根据XML的语法定义。
分享到:
评论

相关推荐

    xml中的css样式表ppt

    本文档是将xml中的css样式表,适用于老师讲解,也适用于学生看

    XML入门教程:CSS样式表-XML/XSLT

    样式表可帮我们解释XML文档中各元素的具体意思,所以通过样式表可直接在浏览器上显示XML文档。在XML文档在序言部分通过xml-stylesheet处理指令可指定关联的样式表。xml-stylesheet指令必须有一个href属性和type属性...

    XML技术教学大纲

    通过本课程的学习,使学生掌握XML应用基础知识,具备使用XML开发Web站点必备的基础知识、在XML中如何使用DTD,XML Schema知识、XML样式表、使用CSS格式格式化XML,XSL样式表,名称空间、XML DOM与XPath,以及XML的...

    CSS 样式表手册(中文版哦)

    Introduction To CSS2样式表简介 什么是样式表: CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 如何将样式表加入您的...

    xml样式显示,帮助你更好学习xml

    xml样式显示,适合初学xml的人,希望可以帮到大家

    XML导入Oracle表

    XML导入Oracle表.zip XML导入Oracle表.zip XML导入Oracle表.zipXML导入Oracle表.zipXML导入Oracle表.zipXML导入Oracle表.zip

    Eclipse代码样式表codetemplates.xml文件

    自己写的一个Eclipse代码样式表codetemplates.xml ,可以在Eclipse中直接导入就好了,可根据需要修改成自己的代码样式。 使用方法: 工程-&gt;右键-&gt;Properties-&gt;Java code style -&gt; code Templates-&gt; import 就ok了。

    用XML+XSL生成WEB树的XSL样式表

    通过XSL解析XML在浏览器中显示树的XSL样式表。 处理简便,功能强大,支持拖放,支持键盘操作,每个结点可显示不同的图标,刷新时可以自动记录结点状态,可灵活处理点击动作。 &lt;br&gt;注:本样式表为同步加载模式...

    基于XML的同学录(xsl样式表)

    主要实现了基于XML的同学录,根据XML文档,用DTD检验及保证其有效性,使其结构完整良好,编写xsl文档,使其按照规定的样表显示,并运用XPath、Xlink、Xpointer等实现向HTML的转换,最后显示在浏览器上。直观,简单,...

    样式表中文手册

    什么是样式表: CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 如何将样式表加入您的网页: 你可以用以下三种方式将...

    XML学习指南pdf

    2.2.1 显示没有样式表的XML文档 2.2.2 在Internet Explorer 5中获取XML 错误 2.2.3 使用级联样式表显示XML文档 第二部分 创建XML文档 第3章 创建格式正确的XML文档 3.1 一个格式正确的XML文档的组成部分 3.2 ...

    css级联样式表

    级联样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。

    XML_xml_

    XML主要是讲用XML语言编写前台页面的样式设计,这样布局清晰。

    oracle 高效生成指定复杂样式的xml文件

    oracle 高效生成指定复杂样式的xml文件

    用xml.xsl 写的课程表

    通过xml和xsl写的课程表,通过点击课程表可以查看该课程的任课教师和分数

    样式表中文手册 css

    什么是样式表: CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 如何将样式表加入您的网页: 你可以用以下三种方式将...

    xslt控制xml样式并被html、c#后台调用

    1)xslt控制xml样式 2)xml、xslt被html调用 3)xml、xslt被c#后台调用

    汉字拼音对应xml表

    汉字拼音对应xml表,总共添加有1万多个汉字,可用于开发输入汉字功能

    xml-xpathscript:XML样式表的Perl框架

    xml-xpathscript:XML样式表的Perl框架

    XML文件创建数据库表

    现在支持MySQL和Oracle`非常好用!

Global site tag (gtag.js) - Google Analytics