定义CSS 的基本格式如下@H_404_1@part{property : value ; property : value ; ...}@H_404_1@part 选择符被施加样式的元素可以是标记tag 类(class) 标识(id)等@H_404_1@property 样式属性可以是颜色字体背景等等@H_404_1@value 样式属性取值决定样式结果@H_404_1@对于每个被施加样式的元素都采用了命令括号 {……} 的格式封闭成为一个独立的@H_404_1@单元样式单一般不包含在XML 文档内部以独立的文档方式存在可以通过如下格式@H_404_1@在XML 文档内部引用CSS 风格样式表@H_404_1@< ? xml-stylesheet type = " text / css " href="http://fkebjiq.blog.163.com/blog/example1.css"?>@H_404_1@其中xml-stylesheet 为关键字type="text /css "表示风格样式表为CSS 类型的@H_404_1@href="http://fkebjiq.blog.163.com/blog/example1.css"表示所引用的风格样式表文件为example1.css 而且该文件与引用它的@H_404_1@XML 文档位于同一目录下如果二者不在同一目录下则必须给出该文件的绝对路径@H_404_1@CSS 风格样式表对文本图片超链接等各种网页元素都可以进行控制下面我们主@H_404_1@要介绍一下对文字和超链接的控制其他元素的控制与此类似读者可以自己类比学习@H_404_1@掌握这部分内容
@H_404_1@文字控制@H_404_1@请看下面的简单例子@H_404_1@例@H_404_1@P art1{FONT FAMILY: "宋体"; FONT SIZE: 9pt; LINE HEIGHT: 12pt; color: 000000}@H_404_1@说明FONT FAMILY: "宋体"; 用来指定网页文字的字体FONT SIZE:9pt; 用@H_404_1@来指定网页文字的字号大小pt 是表示大小的单位LINE HEIGHT:12pt; 用来指定行@H_404_1@与行的垂直距离即行高color: 000000 指定网页文字的颜色000000 代表黑色@H_404_1@为十六进制数@H_404_1@链接色彩变化及下划线的控制@H_404_1@例@H_404_1@A:hover {BACKGROUND COLOR: ffccff; COLOR: 0080ff}@H_404_1@说明hover 表示鼠标指示时链接文字背景色为ffccff 前景色为0080ff@H_404_1@例@H_404_1@A:link {color: 000000;TEXT DECORATION: none}@H_404_1@说明link 表示未被访问时链接颜色为黑色链接无下划线@H_404_1@例@H_404_1@A:visited {color:gray;TEXT DECORATION: none}@H_404_1@说明visited 表示被访问后链接颜色为灰色链接无下划线@H_404_1@例@H_404_1@A:active {color:green;text decoration: none}@H_404_1@说明active 表示鼠标点击时链接颜色为绿色链接无下划线@H_404_1@例@H_404_1@A:hover {TEXT DECORATION: underline}@H_404_1@说明hover 表示鼠标指示时链接显示下划线@H_404_1@注释@H_404_1@none——没有下划线@H_404_1@underline——下划线@H_404_1@overline——上划线@H_404_1@line-through——中划线
@H_404_1@XSL 语法@H_404_1@前面我们只是给出了一个XSL 的实例下来我们要学习XSL 的书写方法及其规则@H_404_1@要利用XSL 将XML 文档中提取相关数据就要用到XSL 提供的模式化查询语言所谓模@H_404_1@式化查询语言就是通过相关的模式匹配规则表达式从XML 里提取数据的特定语句然@H_404_1@后利用XSL 中的HTML 标记将所选择的网页元素数据包围起来也就是用表现信息@H_404_1@把内容信息包围起来我们也可以说把原始树的元素添加到结果树中@H_404_1@在XSL 中我们可以采用3 种不同的模式来实现上述过程@H_404_1@选择模式< xsl:for-each > < xsl:value-of >@H_404_1@测试模式< xsl:if > <xsl:choose><xsl:otherwise>和< xsl:when >@H_404_1@匹配模式< xsl:template >和<xsl:apply-templates>@H_404_1@选择模式@H_404_1@1 < xsl:for-each >@H_404_1@XSL 提供了这样的具有程序语言性质的语句< xsl:for-each>来选定唯一特定的标记或@H_404_1@者具有相同名称的一系列标记称为结点集而且这种选定可以循环进行直到XML 原始树@H_404_1@的结束它的具体语法如下@H_404_1@< xsl:for-each select="pattern" order-by="sort-criteria-list">@H_404_1@属性说明
select:表示满足select 条件使用此样式描述order-by:表示对由select 选定的标记的子标记进行排序"sort-criteria-list"是该标记的子标记列表在列表元素前添加加号+ 表示选定标记的子标记该列表的内容以升序排序添加减号- 表示逆序排序当然上述操作只是对XML 的原始树的元素或者说是标记进行了而并没有施加样式如果要对其施加样式则应该按照如下格式进行< xsl:for-each select="xml_mark" >< !--样式定义-- >< /xsl:for-each >我们可以看如下一个简单的例子< xsl:for-each select="东方不败" ><TR><BR><xsl:process-children/></BR></TR>< /xsl:for-each >参照HTML 标记上述的XSL 语句的含义是不难理解的当然我们也可以采取另外一种方式例:<TR>< xsl:for-each select="东方不败" ><TR>2. < xsl:value-of >< xsl:for-each >模式只是选取节点并没有取出节点的值而< xsl:value-of >能够取出节点的值它的具体语法如下< xsl:value-of select="pattern" >属性说明select:用来与当前上下文匹配的XSL 式样简单地讲如果要在XSL 文档某处插入某个XML 标记假定是xml_mark 标记的内容可用如下方式表示< xsl:value-of select="xml_mark" >< /xsl:value-of >同样我们通过这一语句实现对网页元素标记的风格样式的施加可以采用下列方式< xsl:for-each select="东方不败" ><P><TR><BR><xsl:value-of select= "风云再起" ></BR></TR><P>< /xsl:for-each >有了简单的选择模式我们已经可以对XML 文档的数据进行简单的格式化输出了我们可以选取前面的Reference.xml(程序清单5.19)文档作为这种格式化输出的例子在实现这种输出之前需要对Reference.xml 做少许修改将其中的第二行第5 章 XML 简介<?xml-stylesheet type="text/css" href="http://fkebjiq.blog.163.com/blog/example1.css"?>改为如下的语句<?xml-stylesheet type="text/xsl" href="http://fkebjiq.blog.163.com/blog/example1.xsl"?>然后在同一目录下书写如程序清单5.25 所示的XSL 文件就可以了程序清单5.25(example1.xsl)< ?xml version="1.0" encoding="GB2312"? >< HTML xmlns:xsl="http:www.w3.org/TR/WD-xsl">< HEAD >< TITLE >客户信息 < /TITLE >< /HEAD >< BODY >< xsl:for-each select="customer" >< P/ >< TABLE border="1" cellspacing="0" >< CAPTION style="font-size: 150%; font-weight: bold" >客户信息记录< /CAPTION >< TR >< TH >姓名< /TH >< TD >< xsl:value-of select="name"/ >< /TD >< TH >姓名< /TH >< TD >< xsl:value-of select="name"/ >< /TD >< TH >编号< /TH >< TD >< xsl:value-of select="id"/ >< /TD >< TH >地址< /TH >< TD >< xsl:value-of select="address"/ >< /TD >< TH >电子邮件< /TH >< TD >< xsl:value-of select="email"/ >< /TD >< TH >电子邮件< /TH >< TD >< xsl:value-of select="email"/ >< /TD >< /TR >< TR >< TH >订购的货物名称及描述< /TH >< TD colspan="5" >< xsl:value-of select="goodsl"/ >< /TD >< /TR >< /TABLE >< /xsl:for-each >< xsl:for-each select="customer" >< P/ >< TABLE border="1" cellspacing="0" >< CAPTION style="font-size: 150%; font-weight: bold" >客户信息记录< /CAPTION >< TR >< TH >姓名< /TH >< TD >< xsl:value-of select="name"/ >< /TD >< TH >编号< /TH >< TD >< xsl:value-of select="id"/ >< /TD >< TH >地址< /TH >< TD >< xsl:value-of select="address"/ >< /TD >< TH >电子邮件< /TH >< TD >< xsl:value-of select="email"/ >< /TD >< TH >电子邮件< /TH >< TD >< xsl:value-of select="email"/ >< /TD >< TH >电话< /TH >< TD >< xsl:value-of select="telephone"/ >< /TD >第二部分 JSP 技术和XML 技术< /TR >< TR >< TH >订购的货物名称及描述< /TH >< TD colspan="5" >< xsl:value-of select="goodsl"/ >< /TD >< /TR >< /TABLE >< /xsl:for-each >< /BODY >< /HTML >测试模式XML 技术的优势之一就在于数据输出的可选择性即选择需要的数据输出如果我们对XML 数据不需要全部输出而只需要其中的满足某条件的部分数据那么条件判断<xsl:if>与多条件判断<xsl:choose>及<xsl:when>则迎合了这种需要这种模式与程序设计中的流程控制的思想有异曲同工之妙1. <xsl:if>XSL 元素<xsl:if>的语法结构如下<xsl:if expr="script-expression" language="language-name" test="pattern">属性说明expr: 脚本语言表达式计算结果为“真”或“假” 如果结果为“真” 且通过test 则在输出中显示其中内容可省略此项属性language: expr 属性中表达式的脚本语言类型其取值与HTML 标记SCRIPT. 的LANGUAGE 属性的取值相同缺省为“JScript” test 源数据测试条件test : 设定条件的叙述表达式只有当script. 属性的设定值传回“true”时或test 属性设置的条件成立<xsl:if>中的内容才会被XSL 处理器处理我们可以看下面一个简单的XSL 片段来加深对这个语句的理解例:<xsl:if test=".[@sex='男']"><td>男<xsl:value-of /></td></xsl:if>该片段的含义是当test 属性设置的条件".[@sex='男']"成立时XSL 语句<td>男<xsl:value-of /></td>才会被应用到该测试所在的标记上2 <xsl:choose> <xsl:when>和<xsl:otherwise>这3 个元素是用来设定较为复杂的条件式一般共同配合使用1 < xsl:choose >语法< xsl:choose >属性说明无属性值表示一个多选测试的开始第5 章 XML 简介2 < xsl:when >语法< xsl:when expr="script-expression" language="language-name" test="pattern" >属性说明expr : 脚本语言表达式计算结果为“真”或“假” 如果结果为“真” 且通过test 则在输出中显示其中内容可省略此项属性language : expr 属性中表达式的脚本语言类型其取值与HTML 标记SCRIPT. 的LANGUAGE 属性的取值相同缺省为“JScript”test: 源数据测试条件3 < xsl:otherwise >语法< xsl:otherwise >属性说明无属性值在一个多选测试中如果没有不满足< xsl:when >规定的条件如果在最后有此标记则输出此标记中的内容请看下面简单的XSL 片断例:<xsl:choose><xsl:when test="mountain"><td>高山<xsl:value-of /></td></xsl:when><xsl:when test="valley"><td>峡谷<xsl:value-of /></td></xsl:when><xsl:when test="plain"><td>平原<xsl:value-of /></td></xsl:when> <xsl:otherwise><td>盆地</td></xsl:otherwise></xsl:choose>
故在此将常见的几种Web 服务器的设置介绍如下 1 Windows NT 平台的IIS 服务器 <1>启动菜单->程序->WINDOWS NT OPTION PACK ->IIS5.0 <2>右击Internet Information Server 的子项计算机名在快捷菜单上选择属性 <3>在属性页面的下部有一个文件类型F 按钮单击此按钮会出现文件类 型界面 <4>单击新增类型按钮然后在相关的扩展名栏中填写 .wml 在内容类型MIME 栏中填写 text/vnd.wap.wmle 单击确定按钮 2 Apache Web Server <1>不管是NT 平台 还是UNIX 或LINUX 平台都是修改 Apache 安装目录下的 conf/mime.types 文件 <2>在该文件中增加以下内容 text/vnd.wap.wml .wml image/vnd.wap.wbmp .wbmp application/vnd.wap.wmlc .wmlc text/vnd.wap.wmls.wmls application/vnd.wap.wmlsc .wmlsc <3>存盘 <4>重新启动Apache Web Server 即可