`
android_mylove
  • 浏览: 399336 次
社区版块
存档分类
最新评论

CSS与XSLT

 
阅读更多

CSS

CSS(层叠样式表)是W3C制定的网页样式标准,以弥补HTML语言在表现能力上的不足。现在使用的是CSS level 2,于1998年5月发布。
XML支持CSS,以实现数据的显示控制。使用CSS可获得以下优势:
数据重用:一个CSS可应用于多个XML文档
增强表现力:利用CSS可以修饰数据的显示
增加数据定位:可以控制数据的显示位置
CSS样式规则
选择符 { 属性 : 属性值 ; [属性 : 属性值 ; ……] }
例如: student{ font-family: 宋体; }
选择符:表示受样式声明约束的一个或多个元素
多个选择符: cell1,cell2
子选择符: class > student
子孙选择符: class name
相邻兄弟:cell1+cell2(二者必须同时、顺序、连续出现)
属性:受约束的选择符的样式属性
属性值:属性的取值
样式是继承的,即在某元素上定义的样式将直接传递给其子孙元素

XSLT概述

XSL(eXtensible Stylesheet Language,可扩充样式表语言)是针对XML提出的,比CSS更为有效。XSL是用XML定义的,为XML的样式显示设计的。XSL文档是格式良好的。利用XSL,可以将XML转化为HTML,可以过滤或分类XML数据,可以对XML文档的片断进行寻址,可以基于数据值来格式化XML数据,也可以向不同设备输出XML数据。
XSL包含3部分:
XSLT(Transformation):定义转化XML的方法
XPath:定位XML数据的方法,已发展为查询语言
XSL-FO(Formatting Object):格式化XML的方法,如转化为PDF
XSL用途是XML->XML,其实XSL和XHTML都是XML

XSLT处理器

例如:

XSLT的stylesheet元素

stylesheet元素是XSLT文档的根元素,语法为:

这里分别声明使用了W3C的xslt、fo、schema、xpath等名称空间

XSLT模板

XSLT将XML文档看作一个对象,可以用树结构表示,XML的根元素对应根节点,各子元素分别对应树的节点。
XSLT处理器从XML文档树中查找指定的节点(元素),找到后,再从XSLT文档中找到与该节点匹配的样式定义(模板),按指定的样式显示数据。
XSLT模板可以是HTML或CSS
XSLT模板是XSLT最重要的概念。XSLT模板用template元素声明,包含一系列XSL指令,控制XSLT转换流程并指定XSLT转换的输出内容
XSLT模板有两种:
模板规则(Template Rule):匹配并处理指定的XML节点。必须有match属性,属性值为XPath表达式,指明该模板可匹配哪些XML节点
具名模板(Named Template):可被call-template元素反复调用,处理当前的XML上下文内容。必须有name属性,以便调用
初始上下文节点和初始模板
XSLT转换从初始上下文节点(Initial Context Node)开始,XSLT处理器调用与该节点匹配的模板,按该模板的内容执行转换
初始上下文节点是XSLT转换开始时在XML文档中定位的节点。如果将XML文档直接传入XSLT处理器,初始节点就是XML文档的根节点。如果是从XML文档的某个节点传入的,那么该节点就是初始节点
初始模板(Initial Template)是和XSLT初始节点匹配的XSLT模板。一般地,初始节点是根节点,初始模板由属性match=“/”的template元素指定。如果初始节点元素为“我的文档”,则初始模板的属性match=“我的文档”
如果没有与初始节点匹配的模板,XSLT处理器默认执行一个<xsl:apply-templates/>操作,匹配所有子节点
xml中根节点为/
<xsl:value-of select="*/name"/>用于读取元素中包含的文字内容,或是某个属性的值,注意别遗忘了最后的斜杠,*为通配符,代表当前节点下的所有的节点,/为下一级

转换结果:当前节点的名称为:,节点在上下文中的位置是:1。当前节点的名称为:标题,节点在上下文中的位置是:1。XML实例分析
上下文节点的改变
在XSLT处理器处理过程中,上下文节点从初始节点开始移动到模板中选定的节点
能改变上下文节点的XSLT指令是:
<xsl:apply-templates select=“XPath表达式”/> 从当前节点开始,找出所有匹配的节点,并逐一应用相应的模板进行处理
<xsl:for-each select=“XPath表达式”> 从当前节点开始,选出所有匹配的节点,按照指定的处理指令逐一处理各个节点
这里XPath表达式用于节点定位,必须能够指明节点位置

将输出改为分班级组表方式,即一个表格对应一个班,包含该班同学的成绩和平均成绩
······
内建模板规则
XSLT处理器内建3条模板规则:
内建模板用于匹配文档节点或其他未能被XSLT模板匹配的元素节点,对这些节点一一执行<xsl:apply-templates/> 这些节点可能是未定义匹配模板,也可能是匹配模板有“特殊”需要(用mode声明),也可能虽然已定义,但在apply-templates中未声明或声明错误
内建模板自动匹配所有属性和文本节点,并将节点的值输出到结果树中
内建模板匹配所有处理指令和注释,但是一个“空模板”,不执行任何操作
不包含任何模板的XSLT文档将从XML文档的根节点开始,遍历所有元素和文本节点,但不输出任何元素,只输出文本内容
模板的优先级
由于模板冲突较普遍,按如下方式处理优先级:
xsl:import导入的模板的优先级较低,而xsl:include包含的模板具有与当前模板相同的优先级
若指定了模板的优先级(priority属性),则按指定值处理
对于未声明优先级的模板,根据match属性值计算优先级:
任何节点测试:-0.5,如node()、text()、*、@*等
ns:* -0.25, 可匹配指定名称空间的任何元素
元素名称:0, 可匹配指定名称的元素
@属性名称:0, 可匹配指定名称的属性
processing-instruction(pi):匹配指定名称的指令
其他:0.5,如 “/”、 “E1/E2”、 “E1/[E2]”、 “*/*”、 ……
使用了“|”分割的多个XPath表达式的模板规则,先将各表达式抽出,组成单独的模板分别计算优先级
内建模板的优先级最低

数据筛选

XSl流程控制语句
<xsl:if test="条件表达式">
some output
</xsl:if>
例如:
<xsl:if test="id[text()='1']">
</xsl:if>

chose与when-otherwise:
<xsl:choose>
<xsl:when match="">
some output
</xsl:when>
<xsl:otherwise>
others output
</xsl:otherwise>
<xsl:choose/>
例如:
<xsl:choose>
<xsl:when test="id[text()='1']">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>

排序

sort一般放在for-each中,格式为:
<xsl:sort select=“XPath表达式” />
例如:
<xsl:for-each select=“班级”>
<xsl:sort select=“学生/@学号”/>
<xsl:value-of select=“学生”/>
</xsl:for-each>
可以用order属性声明排序方式

数据导出

用output导出异构的XML文档或text、html文档,可以存入另一文件
output的格式为:
<xsl:output method=“xml|html|text”
version=“2.0” encoding=“UTF-8”
omit-xml-declaration=“yes|no”
standalone=“yes|no”
…./>

分享到:
评论

相关推荐

    YOLO算法-城市电杆数据集-496张图像带标签-电杆.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (177406840)JAVA图书管理系统毕业设计(源代码+论文).rar

    JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代

    (35734838)信号与系统实验一实验报告

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    YOLO算法-椅子检测故障数据集-300张图像带标签.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    基于小程序的新冠抗原自测平台小程序源代码(java+小程序+mysql+LW).zip

    系统可以提供信息显示和相应服务,其管理新冠抗原自测平台小程序信息,查看新冠抗原自测平台小程序信息,管理新冠抗原自测平台小程序。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    YOLO算法-俯视视角草原绵羊检测数据集-4133张图像带标签-羊.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (171674830)PYQT5+openCV项目实战:微循环仪图片、视频记录和人工对比软件源码

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    新建 文本文档.docx

    新建 文本文档.docx

    hw06.zip

    hw06

    3. Kafka入门-安装与基本命令

    3. Kafka入门-安装与基本命令

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    The state of AI 2024.pdf

    AI大模型研究相关报告

    lab02.zip

    lab02

    Unity视频插件AVPro的Win端2.2.3

    仅供学习使用,其他用途请购买正版资源AVPro Video Core Windows Edition 2.2.3 亲测可用的视频播放插件,能丝滑播放透明视频等.

    建设工程消防验收现场指导意见表.docx

    建设工程消防验收现场指导意见表.docx

    MVIMG_20241222_194113.jpg

    MVIMG_20241222_194113.jpg

    五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成

    五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿真波形及仿真说明文档; (3)完整版仿真模型:包括邻近四矢量SVPWM模型和完整双闭环矢量控制Simulink模型; 资料介绍过程十分详细,零基础手把手教学,资料已经写的很清楚

    YOLO算法-锡罐-牙罐-盖子打开数据集-179张图像带标签-锡罐-牙罐-盖子打开.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    java毕设项目之ssm基于JSP的乡镇自来水收费系统+jsp(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

Global site tag (gtag.js) - Google Analytics