XSL 简 明 教 程(上)

XSL 语言 XSL是一种强大的工具,用于处理和呈现XML数据。XSLT用于将XML文档转换为其他格式,XPath用于在XML文档中定位元素,而XSL-FO用于格式化XML数据。了解和掌握XSL的这三个部分,将有助于更好地处理和呈现XML数据。 阅读详情
XSL 简 明 教 程(上)
一 .XSL 入 门 章 节 导 航 

 

  1.XSL---XML 的样式表 

HTML 网页使用预先确定的标识 (tags) ,这就是说所有的标记都有明确的含义,例如 <p> 是另起一行 <h1> 是标题字体。所有的浏览器都知道如何解析和显示 HTML 网页。 
然而, XML 没有固定的标识 , 我们可以建立我们自己需要的标识,所以浏览 器不能 自动解析它们,例如 <table> 可以理解为表格,也可以理解为桌子。由于 XML 的可扩展性,使我们没有一个标准的办法来显示 XML 文档。 
为了控制 XML 文档的显示,我们有必要建立一种机制, CSS 就是其中的一种,但是 XSL( eXtensible Stylesheet Language) 是显示 XML 文档的首选样式语言,它比 CSS 更适合于 XML 。 

2.XSL --- 不仅仅是一种样式表 

XSL 由两部分组成: 

一是转化 XML 文档;二是格式化 XML 文档。 

如果你不理解这个意思,可以这样想: XSL 是一种可以将 XML 转化成 HTML 的语言,一种可以过滤和选择 XML 数据的语言,一种能够格式化 XML 数据的语言。 ( 比如用红色显示负数。 ) 

3.XSL --- 它能做什么? 

XSL 可以被用来定义 XML 文档如何显示,可以将 XML 文档转换成能被浏览器识别的 HTML 文件,通常的, XSL 是通过将每一个 XML 元素 " 翻译 " 为 HTML 元素,来实现这种转换的。 

XSL 能够向输出文件里添加新的元素,或则移动元素。 XSL 也能够重新排列或者索引数据,它可以检测并决定哪些元素 被显示 ,显示多少。 

4.XSL 在 IE5 中的显示 

注意: IE5.0 中,并不能完全兼容 W3C 组织发布的最新 XSL 标准。因为 IE5.0 是在 XSL 标准最终确定以前发布的。微软已经承诺在 IE5.5 中修正。 


 

一 .XSL 入 门 

二 .XSL的转换 

三 .XSL--在客户端的实现

四 .XSL --- 在服务器端的实现 


五 . XSL 的索引 

六 . XSL的过滤和查询

七 . XSL 的控制语句
 
二 .XSL的转换  章 节 导 航 
1.将XML转换成HTML 

XSL是如何将XML文档转换成HTML文件的呢?我们来看一个例子,下面是XML文档的一部分: 

<?xml version="1.0" encoding="ISO8859-1" ?> 

<CATALOG> 

<CD> 

<TITLE>Empire Burlesque</TITLE> 

<ARTIST>Bob Dylan</ARTIST> 

<COUNTRY> USA </COUNTRY> 

<COMPANY> Columbia </COMPANY> 

<PRICE>10.90</PRICE> 

<YEAR>1985</YEAR> 

</CD> 

... 

然后我们将下面的 XSL文件作为HTML的模板将XML数据转换为HTML文件: 

<?xml version='1.0'?> 

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

< xsl:template match="/"> 

<html> 

<body> 

<table border="2" bgcolor ="yellow"> 

< tr > 

< th >Title</ th > 

< th >Artist</ th > 

</ tr > 

< xsl:for -each select="CATALOG/CD"> 

< tr > 

<td>< xsl:value -of select="TITLE"/></td> 

<td>< xsl:value -of select="ARTIST"/></td> 

</ tr > 

</ xsl:for -each> 

</table> 

</body> 

</html> 

</ xsl:template > 

</ xsl:stylesheet > 

在上面的代码中, xsl:for -each元素的作用是定位XML文档中的哪些元素需要按以下模板显示。select属性用来定义源文件中的元素名。指定属性的这种语法又称为XML 
Pattern(模式),类似文件子目录的表示形式。 xsl:value -of元素用来在当前层次中插入子元素的内容模板。 

因为XSL样式表自身也是一个XML文档,因此,XSL文件的开头以一个XML声明开始。 xsl:stylesheet 元素用来声明这是一个样式表文件。< xsl:template 
match="/">语句表示XML的源文档在当前目录下。 

如果为XML文档加上XSL样式表,看下面代码第2行,你的浏览器就可以精确的将XML 文档转换为HTML文件。 

<?xml version="1.0" encoding="ISO8859-1" ?> 

<?xml- stylesheet type="text/ xsl " href =" cd_catalog.xsl "?> 

<CATALOG> 

<CD> 

<TITLE>Empire Burlesque</TITLE> 

<ARTIST>Bob Dylan</ARTIST> 

<COUNTRY> USA </COUNTRY> 

<COMPANY> Columbia </COMPANY> 

<PRICE>10.90</PRICE> 

<YEAR>1985</YEAR> 

</CD> 


 

一 .XSL 入 门 

二 .XSL的转换 

三 .XSL--在客户端的实现

四 .XSL --- 在服务器端的实现 


五 . XSL 的索引 

六 . XSL的过滤和查询

七 . XSL 的控制语句
 
三 . XSL--在客户端的实现   
1.JavaScript解决方案 

在上面的章节中我们已经解释了XSL是如何将XML转换成HTML文件。方法就是在XML文档的头部加入一个XSL样式 表信息 ,然后让浏览 器执行 转换过程。 

这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了。 

一个更好的更全面的解决方案是使用 Javascript 来实现XML到HTML的转换。但是使用JavaScript必须得到以下功能支持: 

a.允许 Javascript 代替浏览器进行细节检测; 

b.根据不同的需要和不同的浏览器使用不同的样式表。 

对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。 

2.一个具体的实例 

下面是我们上面提到的一个XML文档( cd_catalog.xml )例子的部分代码: 

<?xml version="1.0" encoding="ISO8859-1" ?> 

<CATALOG> 

<CD> 

<TITLE>Empire Burlesque</TITLE> 

<ARTIST>Bob Dylan</ARTIST> 

<COUNTRY> USA </COUNTRY> 

<COMPANY> Columbia </COMPANY> 

<PRICE>10.90</PRICE> 

<YEAR>1985</YEAR> 

</CD> 

. 

. 

. 

下面是完整的XSL文件( cd_catalog.xsl ): 

<?xml version='1.0'?> 

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

< xsl:template match="/"> 

<html> 

<body> 

<table border="2" bgcolor ="yellow"> 

< tr > 

< th >Title</ th > 

< th >Artist</ th > 

</ tr > 

< xsl:for -each select="CATALOG/CD"> 

< tr > 

<td>< xsl:value -of select="TITLE"/></td> 

<td>< xsl:value -of select="ARTIST"/></td> 

</ tr > 

</ xsl:for -each> 

</table> 

</body> 

</html> 

</ xsl:template > 

</ xsl:stylesheet > 

注意,现在 XML文件还没有加入XSL样式表,还没有被转换成HTML文件。 

下面是用 JavaSript 来实现最后转换的HTML代码: 

< html > 

<body> 

<script language=" javascript "> 

// Load XML 

var xml = new ActiveXObject (" Microsoft.XMLDOM ") 

xml.async = false 

xml.load (" cd_catalog.xml ") 

// Load the XSL 

var xsl = new ActiveXObject ( " Microsoft.XMLDOM ") 

xsl.async = false 

xsl.load (" cd_catalog.xsl ") 

// Transform 

document.write ( xml.transformNode ( xsl )) 

</script> 

</body> 

</html> 

上面代码中使用了 Javascript ,如果你不知道如何写 JavaScript,您最好专门学习一下。 

第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。

 

 


 

 
 
四 : XSL --- 在服务器端的实现   
1.兼容所有的浏览器 

在上面一章我们介绍了可以通过JavaScript调用浏览器的XML parser(解析软件)来转换XML文档。但是这个方案依然有个问题:如果浏览器没有XML 
parser插件怎么办?(注:IE5内自带XML parser) 

为了使我们的XML数据能被所有的浏览 器正确 显示,我们不得不在 服务器端将 XML转换成纯HTML代码,再输出给浏览器。 

这也是使用XSL的另一个好处。在 服务器端将一种 格式转换为另一种格式也是XSL的设计目标之一。 

同样,转换工作也将成为未来服务器段的主要工作。 

2.一个具体实例 

下面是我们上面提到的一个XML文档( cd_catalog.xml )例子的部分代码: 

<?xml version="1.0" encoding="ISO8859-1" ?> 

<CATALOG> 

<CD> 

<TITLE>Empire Burlesque</TITLE> 

<ARTIST>Bob Dylan</ARTIST> 

<COUNTRY> USA </COUNTRY> 

<COMPANY> Columbia </COMPANY> 

<PRICE>10.90</PRICE> 

<YEAR>1985</YEAR> 

</CD> 

. 

. 

. 

下面是完整的 XSL文件( cd_catalog.xsl ): 

<?xml version='1.0'?> 

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

< xsl:template match="/"> 

<html> 

<body> 

<table border="2" bgcolor ="yellow"> 

< tr > 

< th >Title</ th > 

< th >Artist</ th > 

</ tr > 

< xsl:for -each select="CATALOG/CD"> 

< tr > 

<td>< xsl:value -of select="TITLE"/></td> 

<td>< xsl:value -of select="ARTIST"/></td> 

</ tr > 

</ xsl:for -each> 

</table> 

</body> 

</html> 

</ xsl:template > 

</ xsl:stylesheet > 

下面是在服务器端转换 XML文件为HTML文件的原代码: 

<% 

'Load the XML 

set xml = Server.CreateObject ( " Microsoft.XMLDOM ") 

xml.async = false 

xml.load ( Server.MapPath (" cd_catalog.xml ")) 

'Load the XSL 

set xsl = Server.CreateObject ( " Microsoft.XMLDOM ") 

xsl.async = false 

xsl.load ( Server.MapPath (" cd_catalog.xsl ")) 

Response.Write ( xml.transformNode ( xsl )) 

%> 

注意:我们这里的例子采用的是 ASP文件,用VBScript编写的。如果您不了解ASP或者VBScript,建议阅读有关书籍。(当然,也可以采用其他的语言编写服务器端程序) 

第一段代码建立一个 Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。 
 

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

相关推荐

XSL模版设计软件

关于XSL Report Designer     XSL Report Designer是用来设计XML数据的输出布局,使其可以以报告和表格(以下统称“报告”)的格式进行分页的设计软件。输出布局的设计,包含了报告的外观以及报告的项目和XML的需要打印的要素内容之间的对应关系等的设计。     用于指定布局的语言,采用的是World Wide Web Consortium(W3C)推荐的「

hyfsoft4的专栏 666

XSL文件

XSL文件   第一步:创建模板 处理元素列表     1) :为输出定义一个处理规则           属性: match=”声明范围”     2):插入被选择节点的值到输出文档         属性:select=”被选择的元素名” 3):指导XSL处理器

7F 1549

Python3.8下MvCameraControl.dll加载失败?3种方法彻底解决FileNotFoundError

本文针对Python3.8及以上版本在Windows平台调用MvCameraControl.dll时出现的FileNotFoundError问题,深入剖析了其根源在于Python 3.8引入的DLL加载安全机制变更。文章提供了三种核心解决方案:显式指定DLL完整路径、使用os.add_dll_directory()添加可信目录,以及利用ctypes的winmode参数进行精细控制,并给出了工程化封装建议,帮助开发者彻底解决此兼容性问题。

weixin_29093017的博客 191

XSL开发文档系列

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

weixin_30512043的博客 378

004.PADS VX2.4常用快捷键及无模命令

PADS系列文章

qq_36492361的博客 4965

LVDS接口总结--(0)LVDS硬件电路接口

xilinx LVDS接口硬件总结

zidan1412的博客 9720

xslt入门

XML在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的HTML格式那样的文件呢?如果我们将XML文件比作结构化的原料的话,那么XSL就好比“筛子“与“模子“,筛子选取自己需要的原料,这些原料再通过模子形成最终的产品:HTML。    这个模子大致是这样:我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部分“挖掉“,然后用XSL语句从XML中筛出相关的数据来填充。一言以譬

张皓的专栏 3251

在游戏开发中如何使用Unity3D引擎开发麻将游戏

总体来说使用Unity3D引擎开发麻将游戏需要开发人员熟练掌握Unity3D的各种功能和API,并且需要深入了解麻将游戏的规则和背景,以便实现一个质量高、玩法丰富的游戏。在测试的过程中我们需要检查游戏是否符合规则,保证游戏逻辑的正确性,并检查游戏的UI是否和设计图一致,保证游戏的可玩性。Unity3D引擎是一个高度集成的游戏开发工具,可以为开发人员提供很多强大的工具和功能,包括3D建模、物理模拟、粒子系统、动画等等,在游戏开发中可以提高开发效率和游戏质量。在开始开发之前我们需要明确游戏的需求和功能。

a272857154的专栏 1889

如何创建xsl文件 xml_EXCEL知识分享 I 连载如何快速创建XML文件

转自:Excel之家ExcelHomeXML文件本质上是文本文件,因此使用创建文本文件的方式就可以创建XML文件。此外,在VBA中也可以使用XML DOM对象创建XML文件,示例代码如下。#001 Sub CreateXML()#002 Dim objXMLDOM As Object#003 Dim objNode As Object#004 Dim objVer As Object#005 Se...

weixin_39846664的博客 1049

UE4 Instanced Mesh 半透明渲染顺序不对解决

以绿色方块为Instanced Mesh为例。 正确的半透应该是这样的: 这是一般蓝图Actor方块,其半透是正常的。 然而Instanced Mesh因为过多,UE4不给你缓存正确的渲染顺序。所以,在不改代码的情况下,想解决Instanced Mesh半透问题,是不可能的。不正确的半透如下: 注意到错误发生在Instanced Mesh的方块与方块之间。 但我就是要解决,...

qq_41524721的博客 5569

Android实战——白天黑夜模式设置

白天黑夜模式是一种动态的UI模式,根据当前时间或用户设置的偏好,在白天和黑夜之间进行切换。它通过调整应用程序的颜色、亮度和其他可视化元素来提供更加舒适和易读的用户界面。

小旭的专栏 5229

XSL基础教程(一)

XSL(eXtensible Style sheet Language),即可扩展样式表语言,是XML的亲密伙伴。要学习好XML,不能不掌握XSL。本文就向你全面讲述XSL的一切一切: XSL介绍:介绍XSL是XML的样式表语言,XSL是什么以及它能做什么。 XSL介绍:    XML的样式表语言XSL比CCS要复杂得多。  CSS:HTML的样式表语言:    由于HTML使用

子建莫敌 1968

Tesla v100 4张显卡组装机安装vllm和ollama在Ubuntu系统上的安装---AI大模型系统从零开始0032

本文提供Ubuntu22.04系统下vLLM的完整安装指南,适配4×32G Tesla显卡的单机4卡张量并行部署。教程包含:1)硬件要求(Ubuntu22.04、NVIDIA驱动≥535、CUDA12.1+);2)NVIDIA驱动自动安装方法;3)Python3.10虚拟环境配置;4)vLLM官方预编译包一键安装;5)单机4卡启动Qwen3.6-27B模型的完整参数说明(含FP8量化、多进程并行等关键配置)。文末附分布式部署的Ray集群方案参考链接,适用于多机8卡场景。

添柴程序猿的专栏 177

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

浏览器主页被2345劫持简单处理方法

本人比较常用的浏览器是IE和Chrome IE: 将网址修改为https://www.baidu.com 应用-确定-重新打开IE浏览器 或者win+r运行regedit打开注册表找到这个值   HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下  和HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main这个下面的StartPage ...

A soul tortured by desire 2万+

计算机控制技术及应用

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

什么是XSL

什么是XSL<!--google_ad_client = "pub-2986370686825330";google_alternate_color = "FFFFFF";google_ad_width = 250;google_ad_height = 250;google_ad_format = "250x250_as";google_ad_type = "text_

半亩方塘 3420

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

XML,XSL,XSLT,XPath 以及 XSL-FO

http://www.w3school.com.cn/xsl/xsl_languages.asp 起始于 XSL XSL 指扩展样式表语言(EXtensible Stylesheet Language)。 万维网联盟 (W3C) 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。 CSS = HTML 样式表 HTML 使用预先定义的标签,标签的意义很容易被

rfb0204421的专栏 2099

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

XSL文件作用

<br />Xsl文件可以与html中的标记一起使用,xsl用来设置格式,html中格式设置标签在xsl中全部可使用. <br />xsl文件设置html文件中的格式,xml保存html文件中的数据. <br />XML文件保存数据,简单二维结构,格式:<主标签>数据</主标签>; <br />也可多层嵌套,<br />如 <br /><主标签><br /><第一条记录><br /><嵌套>数据</嵌套>...<br /></第一条记录><br /><第二条记录>...</第二条记录><br />...</

2646

xsl语法介绍

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

mahushen的专栏 1389

什么是XSL,它有什么用途

XSL 之于 XML 就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。XSL 实际上包含两个部分:  * XSLT – 用于转换 XML 文档的语言  * XPath – 用于在 XML 文档中导航的语言  XSLT 是指 XSL 转换 (XSL Transforma

海洋的专栏 2179

XSl语法

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

795

XSL语法介绍

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

Keeping 408

XSL简明教程

一. XSL入门1.XSL---XML的样式表 HTML网页使用预先确定的标识(tags),这就是说所有的标记都有明确的含义,例如是另起一行是标题字体。所有的浏览器都知道如何解析和显示HTML网页。然而,XML没有固定的标识,我们可以建立我们自己需要的标识,所以浏览器不能自动解析它们,例如可以理解为表格,也可以理解为桌子。由于XML的可扩展性,使我们没有一个标准的办法来显示XML文档。为了控制XM

guoguo1980的专栏 2088
上一篇: J2ee学习流程
下一篇: XSL 简明教程 (下)
baobeiSimple
博客等级 码龄20年 61粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值