CSS与XSL简述节能
民生呼声 2020-10-13 01:24 字号: 大 中 小
我们非常清楚的是在XML中内容与表现形式是分开的。这就使得不同的用户可以根据他们自己的需要来定义数据的表现形式。在一个XML的源文件中并没有关于它表现形式的信息。这一点我们可以从下面例子中看出。
例一:在HTML中的一段代码 H1Car Register/H1
H2Make: Saab 9000 /H2
H2Model: 1995/H2
H2Owner:/H2
pKalle Karlsson
G?tgatan 1
11111 Stockholm
/p
这是一段典型的HTML代码。在每一个tag(标签)中都含有表现形式的信息,而关于tag之间联系和结构信息却没有了。这事实上约束了HTML的发展。
例二:在XML中的一段代码
Car Register
Car
Registration NumberABC123 /Registration Number
MakeSaab 9000/Make
Model1995 /Model
Owner
NameKalle Karlsson /Name
AddressG?tgatan 1 /Address
Zip code11111 /Zip code
CityStockholm /City
/Owne几人分工明确r
/Car
/Car Register
在XML文件之中tag中的信息是非常纯的。它没有表现部分。所以说有人称XML为传输知识的语言。
那么XML文件是怎样表现的呢?
XML文件的所有表现信息多发放在了stylesheet(样式表)文件当中。stylesheet文件全权负责XML源文件的表现形式。所以说如果一个XML源文件对应不同的stylesheet文件它就会有不同的表现形式. 有了stylesheet文件我们可以对文件表现型始终的大小,颜色,空白作特定的规定。
在这篇文章中我们要来讨论的CSS(Cascading Style Sheets 层叠样式表)和XSL(XML Style Language 可扩展类型语言)就是两种stylesheet(样式表)语言。大家会想为什么会同时有两种语言。这不是重复了吗?其实它们是互相补充,各有特色的。CSS可以展现HTML 和XML文件,而XSL可以展现XML和Transformation(转型语言)。由此可见它们各有所长。
我们还是来看看例子吧:
例三:一段CSS代码
H1 {
font-size: 12pt;
font-weight: bold;
color: blue;
}
它规定了H1元素的字体大小,种类和颜色。当然CSS能做到的远不只这些。还有比如行距,空白大小等等。
下面我们来看一个CSS结合XML源文件的例子。
例四:一段XML源文件
?XML:stylesheet type="text/css" href="s"?
ARTICLE
HEADLINEFredrick the Great meets Bach/HEA纺企对2015年增发滑准关税或加工贸易棉花进口配额的预期大减DLINE
AUTHORJohann Nikolaus Forke/AUTHOR
PARA
One evening, just as he was getting his
INSTRUMENTflute/INSTRUMENTready and his
musicians were assembled, an officer brought him a list of
the strangers who had arrived.
/PARA
/ARTICLE
例五:一段XSL代码,名为s
INSTRUMENT {display: inline}
ARTICLE, HEADLINE, AUTHOR, PARA {display: block}
HEADLINE {font-size: 1.3em}
AUTHOR {font-style: italic}
ARTICLE, HEADLINE, AUTHOR, PARA {margin: 0.5em}
CSS中头两行规定了INSTRUMENT元素是实体的,而ARTICLE, HEADLINE, AUTHOR, PARA元素是虚体的。第三至第五行规定了HEADLINE元素的字体大小,AUTHOR元素是意大利字体,ARTICLE, HEADLINE, AUTHOR, PARA元素间空白有0.5em宽 在例四第一行,XML文件指明了它的stylesheet文件的类型与位置。这样CSS结合到了XML源文件上。
但CSS与XSL相比,它有着一些不足。CSS适用于那些元素顺序不变的文件。对于那些需要经常按不同元素排序的文件,我们还是要用XSL。
XSL是怎样工作的呢?
XSL处理器把XML源文件通过XSL检验后产生一个HTML表现文件。这样XML源文件就在络浏览器上有了表现。其实最终的目标并不只是产生HTML文件,而是可以各种各样的文件,比如Txt, Rtf. XML源文件中也有类似例四中的一行,
比如是?xml-stylesheet type="text/xsl" href=""用以指明了它的stylesheet文件的类型与位置。每一个XSL文件都包含了template rules(匹配模板规则)的集合。template rules包含有两个部分:Patterns和Actions。
Patterns用以指出这个规则适用于那一个元素,Actions指出这个元素以及它的子元素要怎样展现。这样一来XML源文件中的结构树就被转换成了一个flow objects(流程产物)树。
让我们再来看一个例子吧。
例六:一段XSL代码。
?xml version="1.0"
HTML xmlns:xsl="ttp://"
BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:9.5pt;background-color:#FEEEEE"
xsl:for-each select="portfolio/stock"
DIV STYLE="background-color:teal; color:white; padding:4px"
SPAN STYLE="font-weight:bold; color:white"
xsl:value-of select="name"//SPAN
-xsl:value-of select="price"/
/DIV
DIV STYLE="margin-left:10px; margin-bottom:1em; font-size:9pt"
xsl:value-of select="description"/
SPAN STYLE="font-style:italic"
(change:xsl:value-of select="change"/
/SPAN
/DIV
/xsl:for-each
/BODY
/HTML
第二行是指明文件中标识的集合,又叫做Namespace(名域)。这可以使得同名标识不会冲突。
值得一体的是,文件中还用到了选择语句(for-each select)在XML树结构中进行选择。
相信大家读它不会遇到什么困难。
医学百科小孩子脾虚怎么调理包头治白癜风的专科医院-
-
专家建议趁“双降”卖股买房
专家建议趁“双降”卖股买房股市与楼市向来相爱相杀,呈现...
2020-07-11 | 民生呼声
-
-
沃神小卡争夺战就是二选一湖人根本没戏
沃神:小卡争夺战就是二选一!湖人根本没戏小卡今夏会选择...
2020-07-09 | 民生呼声
-
-
岁老司机受MIP大热鼓舞却被训练师无情嘲搭配
岁老司机受MIP大热鼓舞 却被训练师无情嘲讽诺维茨基北京时间...
2020-06-01 | 民生呼声
-
-
滑雪有几种姿势影响体验看看改善方法来改正搭配
滑雪有几种姿势影响体验 看看改善方法来改正吧滑雪中常见的...
2020-05-31 | 民生呼声
-
-
金华南社区开展卫生环境清整活动
金华南社区开展卫生环境清整活动为进一步改善社区环境,以...
2019-07-15 | 民生呼声
-
-
省督导组莅商督查农信社改制组建农商行工作
省督导组莅商督查农信社改制组建农商行工作11月15日,以省银...
2019-07-13 | 民生呼声