广告
返回顶部
首页 > 资讯 > 前端开发 > html >XSL循环构造的方法
  • 491
分享到

XSL循环构造的方法

2024-04-02 19:04:59 491人浏览 独家记忆
摘要

这篇文章主要讲解了“XSL循环构造的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“XSL循环构造的方法”吧!XSL(EXtensible Stylesh

这篇文章主要讲解了“XSL循环构造的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“XSL循环构造的方法”吧!

XSL(EXtensible Stylesheet Language)它是指可扩展样式表语言。 XSL之于 XML 就像 CSS 之于 html。说白了就是将XML中的数据用指定的显示格式输出.XML不像HTML,它不包含任何显示格式的信息.XSL 包含两个部分:
XSLT – 用于转换 XML 文档的语言. XSLT 是指 XSL 转换 (XSL TransfORMation) XPath – 用于在 XML 文档中导航的语言 
XSL 语法任何 XSL 文档的第一行实际上都是 XML 声明:

<?xml version="1.0" encoding="GB2312"?>
XSL 与 XML ?遵循相同的语法规则
在 XML 声明之后,就是 XSL 声明,例如:

<xsl:stylesheet xmlns:xsl="Http://www.w3.org/1999/XSL/Transform" version="1.0">
......
</xsl:stylesheet>
XSL声明必须要有结束标签,上面的声明中还包含命名空间和 XSL 规范的版本。
什么是命名空间
它指定一组可以在特定文档中使用的元素名称和属性名称。命名空间的作用是避免命名冲突。由于 XML 和其它与 XML 相关的语言都是用户定义的,所以可能出现命名冲突。<table>可能是指一个布局或是一个座位。由于大多数应用程序同时处理多个 XML 文档,因此经常会有不同 XML 文档相混合的情况,而在这些文档中某个元素可能代表不同的含义。几个文档使用相同的命名空间可以确保元素在每个文档中代表相同含义。否则,就应该使用不同的命名空间确保元素代表不同的含义。
命名空间由文档声明中的 xmlns 属性指定,实际上就是网站的地址(例如 http://www.w3.org/1999/XSL/Transform)。其基本原理是 URI 具有唯一性,因此相应的命名空间也是唯一的。文档声明中的 URI 仅用作名称。
模板或规则
XSL 文档是由模板或规则构成,每个模板定义应用于特定 XML 节点的规则。XSL 模板如下所示:

<xsl:template match="/">......</xsl:template>模板的作用是用来承载XML文档中的数据的,就像一个模具,如果这个模具是方形的,那么用这个模具做出来的模型也一定是方形的,而XML文档中的数据就是用来真充模具的原料。实际上在模板中可以嵌套子模板,但最上层模板必须将match设为"/"。
happyold.xml

<?xml version="1.0" encoding="GB2312"?>
<俱乐部>
<会员>
<姓名>cnbruce </姓名>
<年龄>10 </年龄>
<性别>男 </性别>
<描述>他是一个糟糕的家伙!</描述>
</会员>
<会员>
<姓名>yufuzi</姓名>
<年龄>80 </年龄>
<性别>男 </性别>
<描述>他是一个优秀的男人!</描述> 
</会员>
<会员>
<姓名>xiaojin</姓名>
<年龄>20 </年龄>
<性别>男 </性别>
<描述>他人品有问题!</描述> 
</会员>
</俱乐部>

循环构造

<xsl:for-each select="...">......</xsl:for-each>与典型的 for 循环作用相同。
old.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>描述</th>
</tr>
<xsl:for-each select="俱乐部/会员">
<tr>
<!--表达式为何不需要包括父节点或从文档根开始。这是因为这些元素的路径是根据 <xsl:for-each> 构造中的 XPath 表达式来计算的-->
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
将old.xsl与happyold.xml放到同一文件夹下,然后在happyold.xml第二行插队入

<?xml-stylesheet type="text/xsl" href="old.xsl"?>然后在浏览器中预览一下显示结果。
使用循环构造,还可以根据条件过滤输出。假设只想显示会员中年龄大于30的会员。
old30.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>描述</th>
</tr>
<xsl:for-each select="俱乐部/会员[年龄>30]">
<tr>
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
要定义 XML 节点的条件,可以使用下列任何运算符:

等于 (=) 
不等于 (!=)
小于 (<)
小于或等于 (<=) 
大于 (>) 
大于或等于 (>=) 

使用<xsl:sort / >构造使输出的结果按指定的节点进行排序,<xsl:sort /> 元素必须嵌套在 <xsl:for-each > 元素中,以确保应用程序可以循环通过所有的项目。sort 元素没有相应的结束标签,所以在其结尾加上"/"使其自结束。
old_sort.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>描述</th>
</tr>
<xsl:for-each select="俱乐部/会员">
<xsl:sort select="年龄" order="descending"/>
<tr>
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
去掉order="descending"再看看显示结果。
条件构造:

<xsl:choose>
<xsl:when test="表达式">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
条件构造中可以有多个when,但只能有一个otherwise,用于处理未包括在初始测试条件中的所有其它情况.
old_choose.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>描述</th>
</tr>
<xsl:for-each select="俱乐部/会员">
<xsl:choose>
<xsl:when test="年龄 > 70">
<tr bGColor="#66CCFF">
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:when>
<xsl:when test="年龄=10">
<tr bgcolor="blue">
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr bgcolor="red">
<td><xsl:value-of select="姓名"/></td>
<td><xsl:value-of select="年龄"/></td>
<td><xsl:value-of select="性别"/></td>
<td><xsl:value-of select="描述"/></td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

感谢各位的阅读,以上就是“XSL循环构造的方法”的内容了,经过本文的学习后,相信大家对XSL循环构造的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: XSL循环构造的方法

本文链接: https://www.lsjlt.com/news/94218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • XSL循环构造的方法
    这篇文章主要讲解了“XSL循环构造的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“XSL循环构造的方法”吧!XSL(EXtensible Stylesh...
    99+
    2022-10-19
  • java构造器 默认构造方法及参数化构造方法
    目录1、构造器1.1 权限修饰符是public 1.2 显示定义构造器1、构造器 构造器也叫构造方法、构造函数,是一种特殊类型的方法,负责类中成员变量(域)的初始化。构造器的用处是在...
    99+
    2022-11-12
  • python3的构造方法
    1. 作用创建对象时初始化实例变量2. 语法格式def __init__(self[,形式参数列表])    语句3.说明 1.构造方法必须为   __init__ 不可改变 2.在一个类中,只能有一个__init__构造方法起作用(有多个...
    99+
    2023-01-31
    方法
  • Shell实现程序造死循环的几种方法示例
    前言 有时候脚本中需要造个死循环,或者让程序一直运行下去,到某个条件方退出循环。 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写: while(1) { //do something } ...
    99+
    2022-06-04
    示例 几种方法 程序
  • php构造方法和java构造方法有哪些区别
    这篇文章主要介绍“php构造方法和java构造方法有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php构造方法和java构造方法有哪些区别”文章能帮助大家解决问题。区别:1、重写子类构造函...
    99+
    2023-06-29
  • php构造方法和java构造方法有什么区别
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php构造方法和java构造方法有什么区别早期的PHP是没有面向对象功能的,但是随着PHP发展,从PHP4开始,也加入了面向对象。PHP的面向对象语法是从JAVA演化...
    99+
    2021-01-17
    php
  • python如何不使用循环构造一个列表
    这篇文章将为大家详细讲解有关python如何不使用循环构造一个列表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。不使用循环构造一个列表import itertoolstest= [[-...
    99+
    2023-06-17
  • String的构造方法和一般方法
    public class StringTest{     public static void main(Strin...
    99+
    2022-10-18
  • Java有参构造方法与无参构造方法(完全理解)
    文章目录 前言有参构造方法无参构造方法定义四个类说明情况(如果还不清晰请看)Lombok的基本使用 前言 遇到了就简单写一下吧,如果能够对你有帮助,点个赞吧。首先清晰明了的了解到有参构造方法与无参构造方法、以及应用,然后实战...
    99+
    2023-08-16
    java intellij-idea 开发语言
  • PHP中__construct()构造方法
    这篇文章将为大家详细讲解有关PHP中__construct()构造方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与...
    99+
    2023-06-14
  • Scala的构造方法是什么
    本篇内容介绍了“Scala的构造方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala的构造方法非常灵活(具体怎么个灵活法这里不...
    99+
    2023-06-17
  • mysql构造慢查询的方法
    这篇文章将为大家详细讲解有关mysql构造慢查询的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql构造慢查询的方法:1、修改配置文件,在【my.ini】增加相...
    99+
    2022-10-18
  • python列表的构造方法list()
    前言: 在很多语言中都有这种情况,需要把一组数集中存储起来方便后面的使用,而且还要求这组数能够随意的去查询,取出,排序,删除等等。这里大家可能想到了数组这个概念,也就是其他语言中的a...
    99+
    2022-11-13
  • 详解JAVA中的构造方法
    目录 一、构造方法的概念 二、构造方法的特性 一、构造方法的概念         构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时由编译器自动调用,并且在整个对象的生命周期内只调用一次。 代码演示:...
    99+
    2023-09-07
    java
  • JavaScript循环中断的方法
    今天小编给大家分享一下JavaScript循环中断的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。break<sc...
    99+
    2023-06-27
  • Python在for循环中获取循环次数的方法
    这篇文章主要介绍“Python在for循环中获取循环次数的方法”,在日常操作中,相信很多人在Python在for循环中获取循环次数的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python在for循环中...
    99+
    2023-06-02
  • Java如何构造DSL方法重构
    目录DSL特点小结DSL Domain-specific language: 一种专注于某一领域,仅针对部分表达方式的计算机编程语言。 特点 方法链 Method Chaining功...
    99+
    2022-11-13
  • c语言结构体循环赋值的方法是什么
    C语言结构体循环赋值的方法可以使用循环语句(如for循环)来遍历结构体数组,并对每个结构体成员逐个赋值。具体步骤如下:1. 定义一个...
    99+
    2023-09-04
    c语言
  • 课时41:魔法方法:构造和析构
    目录:   一、_ _init_ _(self[, ...])   二、_ _new_ _(cls[, ...])   三、_ _del_ _(self)   四、课时41课后习题及答案   说的那么厉害,那什么是魔法方法呢? (1)魔法...
    99+
    2023-01-30
    课时 方法 魔法
  • Python导入循环方法
    摘自:Python核心编程第二版:12.8.5 导入循环    实际上,在使用 Python 时, 你会发现是能够导入循环的。 如果你开发了大型的 Python 工程, 那么你很可能会陷入这样的境地。     我们来看一个例子。 假定我们的...
    99+
    2023-01-31
    方法 Python
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作