|
| |
精品推荐 |
 |
|
| |
|
|
|
|
跟我学XML和XSL
|
日期:2008年1月6日 作者: 查看:[大字体
中字体 小字体]
|
2. XML文档中标记必须成对出现,如果是空标记也必须有前加“/”的同名标记结束,或使用此种文式< xml_mark/ >表示空标记。
3. XML以及下周将要介绍的XSL文档,属性值必须用双引号(")或单引号(')括起来。
4. XML文档必须是好结构的(XSL文档也是XML文档中一种),也就是说标记必须有结束标记、标记可以嵌套但不可交叉,如
< outer >< inner >< /inner >< inner/ >< /outer >
是合法的,而下面的形式
< outer >< inner >< /outer >< /inner >
则是错误的。如果XML文档在浏览时出错,多半是违反了上面提到的规则。
跟我学XSL(二)(返回标题)
2000-05-04· 禹希初·CPCW
XSL入门
上期我们讲到用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进行格式化,即可用如下方式表示:
上一篇:用xml+xslt实现表格背景色按行交替设置
下一篇:2005年 Web2.0 带动的11大软件
|
| 跟我学XML和XSL 相关文章: |
|
|
|
| 跟我学XML和XSL 相关软件: |
|
|
|
|