XML文件的显示——CSS和XSL(3)
来源:ccidnet.com 发布时间:2007-10-15 18:48:00
XSL文件中,除HTML标记外,其他就是XSL自己的标记了。标记有不同的功能。下面介绍XSL中各种可用的标记,大家可以参照它们的功能说明与使用举例,来看看例3中XSL的源文件。
1. xsl:stylesheet:作为XSL样式表中的根元素,在每个XSL文件中都必须有。
属性:default-space:决定是否保留XML文件中的空白,仅当值为“default”时保留。
indent-result:决定是否保留XSL文件中的空白,值为“yes”时保留。
language:设定在XSL文件中使用的脚本语言。
例:〈xsl:stylesheet default-space="default"〉
2. xsl:template:指定XML文件中的特定标记来定义排版样式。
属性:language:指定使用哪种脚本语言。
match:设定从XML文件中哪个标记开始来读取信息,如果值为“/”那么表示从XML文件的根元素开始读取信息。
例:〈xsl:template mach="data/book"〉:表示从XML文件中的〈book〉标记开始读取信息。
3. xsl:value-of:从XML文件中的特定标记中将信息读出来。属性:select:设定读取哪一个标记中的信息。
例:〈xsl:template select="title"〉:表示要从〈title〉标记中将信息读出来。
图3
4. xsl:for-each:将排版样式应用到XML文件中相同的标记(类似于循环语句)。
属性:select:设定从哪一个标记中读取数据。
order-by:在读取信息完成之后,设定依据什么标记来进行排序,值为某一特定标记,如在标记名前用“+”号表示是由大到小的排序,反之用“-”号。例:〈xsl:for-each select="data/book" order-by="-price"〉:因为在XML文件中有多个〈book〉标记,这里设定重复地从〈book〉标记下的子元素中读取信息,将读出来的信息按照价格从小到大进行排序显示。
5. xsl:comment:在此元素中的内容,XSL将它作为注释信息,并不显示在浏览器中。
6. xsl:apply-templates:指示XSL处理器在该XSL样式表中寻找合适的〈xsl:template〉中设定的样式来用。
属性:order-by和select:同xsl:for-each中的属性一样。
例:.......
〈tr〉〈xsl:apply-templates/〉〈/tr〉
..........
〈xsl:template match="book"〉
〈td〉〈xsl:value-of select="author"/〉〈/td〉
〈/xsl:template〉
.........
7. xsl:copy:从XML文件中拷贝标记中的信息到输出的文件中。无属性。
例:.......
〈xsl:template〉
〈xsl:copy〉
〈xsl:value-of /〉
〈/xsl:copy〉
〈/xsl:template〉
...........
此例首先使用〈xsl:copy〉将XML文件中的非标记的信息全部读取出来,然后通过〈xsl:value-of /〉将这些复制的信息显示出来。
8. xsl:if:与一般程序中的If...Then类似。
属性:script:设定script程序所表达的式子。
language:设定使用哪种脚本语言。
test:设定条件的叙述表达式。只有当script属性的设定值传回“true”时(或test属性设置的条件成立),〈xsl:if〉中的内容才会被XSL处理器处理。
例:
〈xsl:if test=".[@sex='男']"〉
〈td〉男〈xsl:value-of /〉〈/td〉
〈/xsl:if〉
9. xsl:choose、xsl:when、xsl:otherwise:这三个元素是用来设定较为复杂的条件式,一般共同配合使用。其中xsl:when有script、language、test三种属性,与前面xsl:if中的属性含义是一样的。
例:
〈xsl:choose〉
〈xsl:when test="wife"〉
〈td〉妻〈xsl:value-of /〉〈/td〉
〈/xsl:when〉
〈xsl:when test="husband"〉
〈td〉夫〈xsl:value-of /〉〈/td〉
〈/xsl:when〉
〈xsl:otherwise〉
〈td〉未婚〈/td〉
〈/xsl:otherwise〉
〈/xsl:choose〉
10.xsl:attribute和xsl:element:可以在标记中附加一个属性名称或新建一个标记。XSL样式表不但可以引用HTML标记,而且也可以建立新的标记和属性,然后一起结合XML文件中的信息来显示。其中,xsl:attribute是在标记中新增一个属性,xsl:element是新建一个标记。它们有共同的属性。
属性:name:为新建的属性指定属性名。
例:假如我们没有〈img〉这种显示图形文件的HTML标记,现在我们在XSL文件中要新增一个这样的标记,名为〈img〉,具有src属性。
〈xsl:template match="image"〉
〈xsl:element name="img"〉
〈xsl:attribute name="src"〉
〈xsl:value-of /〉
〈/xsl:attribute〉
〈/xsl:element>
XSL是显示XML文件的最好的方法,因为它符合XML文件的标准,一切XML有的优点,XSL都具备,而且在功能上也有比CSS更强的地方,所以我们在想要将XML文件内容显示出来的时候,最好优先考虑使用XSL——为了将来的扩展。


猜你喜欢
- 引子: 今天看到别人的一个题目: function fn(x){ x = 10; arguments[0] = 20; console.lo
- 简介主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用。以下是需要的POST数据代码以下
- 本文实例讲述了Python实现向服务器请求压缩数据及解压缩数据的方法。分享给大家供大家参考,具体如下:向服务器请求压缩数据格式,并解压缩数据
- 1. 目的在 C/C++ 开发中使用了第三方库,具体说是 .a, .lib, .dll 等文件,想通过 Python 查询出这些文件中的版本
- 先准备好软件:一、安装Apache,配置成功一个普通网站服务器 运行下载好的“apache_2.0.55-win32-x86-no_ssl.
- 最近做项目中有一个模块是用于实时监控的,左边有个菜单栏用于显示所有的设备,那当然是从数据库中动态获取的了,右边是个iframe用于显示监控画
- 临时对象池 pool 是啥?sync.Pool 给了一大段注释来说明 pool 是啥,我们看看这段都说了些什么。临时对象池是一些可以分别存储
- python的多进程性能要明显优于多线程,因为cpython的GIL对性能做了约束。Python是运行在解释器中的语言,查找资料知道,pyt
- 今天在pycharm中手贱,点击了项目exclude,直接懵逼,项目东西找不到了,奶奶的如图一番操作后如图所示,捣鼓了很久,恢复方法点击se
- 1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.va
- 要将xian80地理坐标系转换成投影坐标系:xian1980 = """GEOGCS["GCS_Xi
- 本文实例讲述了python使用Queue在多个子进程间交换数据的方法。分享给大家供大家参考。具体如下:这里将Queue作为中间通道进行数据传
- 这是《python基础教程》中的第二个项目,关于python操作PDF。涉及到的知识点1、urllib的使用2、reportlab库的使用这
- 目录什么是虚拟 dom?为什么需要虚拟dom?虚拟dom是如何转换为真实dom的?模板和虚拟dom的关系注入挂载完整流程总结什么是虚拟 do
- 本文实例讲述了Python学习笔记之字符串和字符串方法。分享给大家供大家参考,具体如下:字符串在 python 中,字符串的变量类型显示为
- 限定范围拖拽目录代码实例与简易拖拽的差异下载源码链接 代码实例* { padding: 0; margin: 0;}#box1 {
- 本文实例讲述了PHP队列用法。分享给大家供大家参考。具体分析如下:什么是队列,是先进先出的线性表,在具体应用中通常用链表或者数组来实现,队列
- 目录引言环境代码实现准备工作获取并存储好友头像信息生成微信好友墙后记引言前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张
- 存储函数也是过程式对象之一,与存储过程相似。他们都是由SQL和过程式语句组成的代码片段,并且可以从应用程序和SQL中调用。然而,他们也有一些
- 很早以前就有很多关于用CSS制作的相册,今天突然想看又找不到,反正也无聊,自己做了一下,结果做一下发现自己温习了一些东西。还行,