问题 问答题


阅读以下关于ASP和XML语言编写商务网站的技术说明,根据回答问题1~问题4。
【说明】
某公司计划建立一个商务网站,该网站主要面对消费者,功能是完成网上购物、信息查询、广告宣传、用户需求调查等。该公司服务器采用Windows Server 2003+IIS5.0,使用ASP和XML相结合的网页编程语言,数据库采用SQL Server,数据库名为TEST,数据库管理员的用户名为sa,密码为test_test,

【问题3】
使用XML语言实现了一个简易的图书信息显示网页,其文件名为“book.xml”,用IE浏览器打开该网页后的显示效果如图7-16所示。book.xsl文件是book.xml文件的一个样式单文件。请将这两个文件中的(9)~(12)空缺处的程序代码填写完整。


【book.xml文件的内容】
<xml version="1.0" encoding="gb2312" >
<xml-stylesheet type="text/xsl" href=" (9) ">
<test>
<book>
<书名>网络管理员考试考前冲刺预测卷及考点解析</书名>
<定价>29.80元</定价>
<作者>郭春柱</作者>
<出版社>电子工业出版杜</出版社>
</book>
<book>
<书名>网络工程师考试考前冲刺预测卷及考点解析</书名>
<定价>29.80元</定价>
<作者>郭春柱</作者>
<出版社>电子工业出版社</出版社>
</book>
<!-- 此处省略部分源代码 -->
</test>
【book.xsl文件的内容】
<xml version="1.0" encoding="gb2312">
<xsl:stylesheet xmlns:xs1="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="gb2312" indent="yes"/>
<xsl:template match="/">
<html>
<meta http-equiv="Content-Type" contcnt="text/html; charset=gb2312" />
<body>
<table border="1">
<tr><xsl:for-each select="test/book[position()=1]/*">
<td><xsl:value-of select="name()"/></td>
(10)
</tr>
<xsl:for-each select=" (11) ">
<tr><xsl:for-each select="./*">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
(12)

答案

参考答案:

解析:(9) book.xsl (10) </xsl:for-each> (11) test/book (12) </xsl:stylesheet>这是一道要求读者掌握XML标记语言进行网页设计的编程题。本题所涉及的知识点如下。 XML文档本身不含有样式信息,通常是引用外部的样式单文件来显示,从而将数据与显示格式分开。具体实现方法是在XML文档开头给出关于样式单文件的声明语句。在本试题中,book.xsl文件引用 book.xml文件的样式单语法格式如下。 <xml-stylesheet type="text/xsl" href="book.xsl"> 如果在声明部分引用了多个XSL样式单,则只有第一个样式单会生效,其余的都会被忽略掉。 XSL文档的标准格式如下。 <xsl:stylesheet xmlns: xsl="http://www.w3.org/TR/WD-xsl"> template rule i output template </xsl:stylesheet> 由于XSL文档本身是格式良好的XML文档,因此在书写时要注意标签的匹配问题。<xsl:stylesheet>既是XSL的声明语句,也是根元素,必须位于文件的首部。通常要利用xmlns属性指明XSL的名称空间。由XSL文档的标准格式可知,(12)空缺处所填写的内容是:</xsl:stylesheet>。 样式单中所有的模板规则都由标签<xsl:temlplate>标明。模板规则可以说明处理的对象(元素/属性)、处理的方式或是转换的结果。 XSL的逻辑语法结构包括循环和条件判断。这两种结构使用尸能够灵活地书写转换规则。循环判断是通过<xsl:for-each>元素实现的,它的可选属性包括select和order-by。循环结构能够遍历整个结果集合,而不必针对每一条结果都单独书写转换规则。它的标准语法格式如下。 <xsl:for-each select="pattern" order-by="patternlist"> … </xsl:for-each> 条件判断结构分为if语句和Case语句两种形式。if语句是简单地对条件进行判断,结果为真就执行条件内部的规则,因此可以把if条件与简单的布尔表达式联合使用。Case语句是对多种情况的分支判断。该语句包括<xsl:choose>、<xsl:when>和<xsl:otherwise>三个元素。 通常标签不允许交叉嵌套使用,结合(10)空缺处前两行的“<xsl:for-each select="test/book[position()= 1]/*">”及后两行的“<xsl:for-each …>”语句可知,该空缺处所填写的内容是:</xsl:for-each>。 由book.xml文件中的“<test><book>…</test></book>”,及“<xsl:for-each select="test/book[position()= 11/*">”语句可知,(11)空缺处所填写的内容是:test/book。

选择题
单项选择题 共用题干题