XSL/XML网页制作入门,入门到精通[6]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 myali88 的 blog

  3. xml以及下面将要介绍的xsl文档,属性值必须用双引号(")或单引号(’)括起来。

  4. xml文档必须是良构的(xsl文档也是xml文档中一种),也就是说标记必须有结束标记、标记可以嵌套但不可交叉,如:

<outer><inner></inner><inner/></outer>

是合法的,而下面的形式

<outer><inner></outer></inner>

则是错误的。如果xml文档在浏览时出错,多半是违反了上面提到的规则。

  上期我们讲到用css(层叠样式表)来格式化xml文档,其效果并不很令人满意。实际上css用来格式化html标记比较合适些,只是因为它简单才在上例中采用。

  xml在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的html格式那样的文件呢?如果我们将xml文件比作结构化的原料的话,那么xsl就好像"筛子"与"模子",筛子选取自己需要的原料,这些原料再通过模子形成最终的产品:html。

  这个模子大致是这样:我们先设计好表现的页面,再将其中需要从xml中获取数据来填充内容的部分"挖掉",然后用xsl语句从xml中筛出相关的数据来填充。一言以譬之:这xsl实际上就是html的一个"壳子",xml数据利用这个"壳"来生成"传统"的html。

  xml在展开时是一个树形结构,我们将树形结构中自定义标记称为节点,节点之间存在父子、兄弟关系,我们要访问其中的结点从根结点就要以"/"来层层进入。

  在xsl这个壳中,我们要从原料库xml里提取相关的数据,就要用到xsl提供的模式化查询语言。所谓模式化查询语言,就是通过相关的模式匹配规则表达式从xml里提取数据的特定语句,即我们上面所说的"筛子"。

  参考微软的"xsl开发者指南",我们大致可将模式语言分为三种:

  选择模式:

<xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>

  测试模式:

<xsl:if> 和<xsl:when>

  匹配模式:

<xsl:template>

  我们现在就分别对之进行介绍。

  一、 选择模式

  选择模式语句将数据从xml中提取出来,是一种简单获得数据的方法,这几个标记都有一个select属性,选取xml中特定的结点名的数据。

  1、<xsl:for-each>

  如在xml中有这样的数据:
程序代码:

<author>
<name>小禹</name>
<name>春华</name>
<name>秋实</name>
</author>

  我们要读取这三个作者名字,是一个一个地按"author/name"方法来读取吗,可有多个这样的name呀?如果有一种程序性的语句来循环读取有多好啊!

  想得很对,xsl提供了这样的具有程序语言性质的语句:<xsl:for-each>

  用它读取这三个作者名字的方法如下:
程序代码:
<xsl:for-each select="author/name">
……
</xsl:for-each>

  select,顾名思义,选取,它可以选定xml中特定唯一的标记,也可以选择某一类相同的标记,我们称之为结点集。

  语法:
程序代码:
<xsl:for-each select="pattern" order-by="sort-criteria-list">


  属性:

  1.select

  根据xsl样式查询考察上下文以决定哪类结点集(满足select条件)使用此样式描述。作为一种简化的表示就是,如果你想对文档中的某一种标记的内容的显示方式进行格式化,就可以将让select等于此元素的标记名。例如欲对标记xml_mark进行格式化,即可用如下方式表示:
程序代码:
本文关键:XSL/XML网页制作入门,入门到精通
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top