`
isiqi
  • 浏览: 16549882 次
  • 性别: 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的语法定义。
分享到:
评论

相关推荐

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...

    jQuery API 1.4.1 中文速查手册

    欢迎转载、替换其他XSL样式或其他形式的转载,但必须保证XML文件原样转载,保留署名以及不可用于商业用途。本文档仅供参考,出于方便学习的目的而分发。使用者必须自行承担风险,因使用此文档造成的任何损失或者潜在...

    ASP 博客代码

    **XSLT(可扩展样式表语言转换):** XSLT是用于转换XML文档的编程语言。在X3-BLOG系统中,XSLT可能用于将存储在XML文件中的数据转换成HTML,以便在Web浏览器中呈现。通过XSLT,开发者可以控制XML数据如何被格式化...

    html 语言 学习札记

    `&lt;head&gt;`标签是HTML文档的重要部分,它包含了文档的元数据,如字符集、样式表引用、图标链接以及对搜索引擎和浏览器的信息。理解并正确使用这些元素是创建有效HTML页面的关键步骤。在HTML学习过程中,熟悉这些基本...

    File-Manager-UI-Wpf-master.7z

    4. **FileManagerUI** - 这很可能是项目的主源代码目录,包含XAML文件(用于定义UI),C#或VB.NET文件(用于编写业务逻辑),以及其他资源文件如图片、样式表等。 通过深入研究这个项目,开发者可以学习到以下知识...

    j2ee在线购物网实例源码

    4. **css**、**js**、**images**: 分别存放样式表、JavaScript脚本和图片资源,用于美化和增强网站的功能。 5. **database**: 可能包含数据库脚本,用于创建和初始化数据库结构。 6. **lib**或**dependencies**: ...

    mowangdk.github.io

    【标签】"CSS"意味着项目的核心内容是关于层叠样式表(Cascading Style Sheets)的。CSS是一种用于定义HTML或XML(包括SVG、XHTML等)文档呈现方式的样式语言,它控制着网页的布局和外观。通过学习和应用这个项目中...

    css3唱片滑动效果

    在IT行业中,CSS3是一种强大的样式表语言,用于描述HTML或XML(包括SVG、XHTML等)文档的呈现。在本案例中,我们关注的是一个使用CSS3实现的唱片专辑滑动效果,这是一种创新的用户体验设计,常用于展示音乐、艺术...

    php卡盟程序源码

    数据库设计需遵循关系型数据库原理,如表结构设计、索引优化和事务处理,以确保数据的一致性和高效检索。 4. 用户认证与权限管理:卡盟平台涉及用户注册、登录、密码找回等功能,需要实现安全的用户认证机制。此外...

    js使用小技巧

    交换表的行 TableID.moveRow(2,1) 替换CSS document.all.csss.href = "a.css"; 并排显示 display:inline 隐藏焦点 hidefocus=true 根据宽度换行 style="word-break:break-all" 自动刷新 ;URL=...

Global site tag (gtag.js) - Google Analytics