在XML中引入CSS样式表有两种方法。一种是在XML文档直接嵌入CSS样式;另一种则是外部引入(似乎在WEB中很多引的方式都有这两种)。
在IE浏览器中打开XML文档,可以看到,使用样式表之后XML文档中所有的标记文字以及注释内容已不再显示,各个元素所包含的数据将分别以样式表中指定的格式显示出来。
1、XML中引入CSS样式。在XML中引入CSS样式表有两种方法。一种是在XML文档中直接嵌入CSS样式;另一种则是外部引入(似乎在WEB中很多引入的方式都有这两种)。在XML中直接嵌入CSS样式的方法如下:
1 <?xml version="1.0" encoding="utf-8"?>
2 <?xml-stylesheet type="text/css"?>
3 <xml>
4 <HTML:STYLE xmlns:HTML=http://v.youku.com/v_show/id_XMTMzMTM0ODIzMg==.html>
5 book{
6 display:block
7 background-color:#FFE4C4
8 margin:5px
9 }
10 name{
11 display:block
12 line-height:30px
13 }
14 author{
15 display:block
16 line-height:30px
17 }
18 date{
19 display:block
20 line-height:30px
21 }
22 </HTML:STYLE>
23 <book>
24 <name>Xml应用系列</name>
25 <author>学路的小孩</author>
26 <date>2009-03-23</date>
27 </book>
28 </xml>
代码说明:第一行是XML文件的头部声明,作为一个格式良好的Xml文档,都应该添加头部的声明信息。第二行是CSS样式的声明,其中,xml-stylesheet的意思是为XML文档添加样式表,type="text/css"的意思是样式表的类型是CSS样式表。第四行和第二十二行中间的内容则是CSS样式的内容,其中第四行用来声明添加CSS代码,第二十二行则是它的封闭标签。后面的几行是XML文档的内容。在添加了CSS样式之后,我们在IE中打开这个XML文档,效果如下图:
第二种方式是外部引用。外部引用的代码示例如下:
1 <?xml version="1.0" encoding="utf-8"?>
2 <?xml-stylesheet type="text/css" href="bookstyle.css"?>
3 <xml>
4 <book>
5 <name>Xml应用系列</name>
6 <author>学路的小孩</author>
7 <date>2009-03-23</date>
8 </book>
9 </xml>
代码说明: 第一行为Xml文档的声明;第二行中添加了一个href属性,它表示引入外部的CSS文件,文件的名字是bookstyle.css。后面的几行是XML文档的内容。我在bookstyle.css中写入的样式如下:
1 book{
2 display:block
3 background-color:gray
4 margin:5px
5 }
6 name{
7 display:block
8 line-height:30px
9 }
10 author{
11 display:block
12 line-height:30px
13 }
14 date{
15 display:block
16 line-height:30px
17 }
这个样式跟第一个样式的唯一区别就是背景改为了gray,在IE中显示的效果为:
2、CSS设置XML文档的显示效果
CSS中使用选择符来格式化XML文档。选择符一般为一个或多个XML标签,例如上面的book、name等,在花括号中为显示的属性和属性值,属性和属性值中间以冒号分开。使用CSS可以通过dispaly属性设置标签内容是否显示,属性值有none、block、inline、list-item。另外CSS还可以设置XML显示的字体、颜色、文本、边距、边框、填充以及定位显示。这些使用方法和在HTML中的使用是一样的,这里就不再详细说明
有什么不懂的话可以去51 r g b的论坛询问高手哦
XSL提供两种机制来联合样式表:1.样式表导入,允许样式表之间相互引用
2.样式表包含,允许样式表被原文组合.
样式表导入
一个XSL样式表可以包含xsl:import元素.所有xsl:import元素必须出现在样式表的开头. xsl:import元素有一个 href 属性,它的值就表示要导入的样式表的URI. 相对URI是指相对于xsl:import元素的基URI.
<xsl:stylesheet xmlns:xsl="">
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:define-attribute-set name="note-style">
<xsl:attribute-set font-posture="italic"/>
</xsl:define-attribute-set>
</xsl:stylesheet>
导向的样式表中的规则和定义比任何被导入样式表中的规则和定义都要重要.同样,一被导入的样式表中的规则和定义比之前导入的样式表中的规则和定义都要重要.一般来说,更重要的规则或定义比次重要的规则或定义要优先.每一类的规则和定义都会详细规定它.
样式表包含
一个样式表中可以用xsl:include元素来包含另一个XSL样式表. xsl:include也有href 属性,它的值就表示被包含的样式表的URI. 相对URI是指相对于xsl:include元素的基URI. xsl:include元素可以作为xsl:stylesheet元素的子元素,出现在任何xsl:import之后.在XML树的层次在上该包含生效.由href属性值定位的资源内容作为一个XML文档解析,在该文档中的xsl:stylesheet元素的子元素替代包含文档的xsl:include元素.同时在被包含的文档的xsl:import元素在包含文档中移上至任一存在的xsl:import元素之后. 不象xsl:import,被包含的规则或定义不影响他们被处理的方式.
嵌入样式表
通常一个样式表就是一个完整的XML文档,xsl:stylesheet元素作为文档的元素. 然而一个XSL样式表也可以嵌入在其它文档内容之中.内嵌的方式可能有两种:XSL样式表可以原文嵌入在一个非XML文档中或者xsl:stylesheet不作为文档元素出现在一个XML文档中.在第二种情况增加了出现内嵌样式,即自己规定样式的文档的可能. XSL还没有为之定义相应的机制.这是由于可以采用把样式表结合文档的通用方式来实现,只要满足:
1. 该方式允许一部分内容可以规定为样式表,例如使用有片段标识符URI
2. 该方式本身能被嵌入在文档中, 比如作为一个处理指令.定义这样的方式不在XSL的范围之内.
下例表明了怎样用xml:stylesheet处理指令将样式表和文档结合来实现内嵌样式. 其中的URI在片段标识符中使用了一个Xpointer来确定xsl:stylesheet元素的位置.
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="#id(style1)"?>
<!DOCTYPE doc SYSTEM "doc.dtd">
<doc>
<head>
<xsl:stylesheet xmlns:xsl="" id="style1">
<xsl:import href="doc.xsl"/>
<xsl:template match="id(foo)">
<fo:block font-weight="bold"><xsl:process-children/></fo:block>
</xsl:template>
</xsl:stylesheet>
</head>
<body>
<para id="foo">
...
</para>
</body>
</doc>