在TC中利用XML格式化对象属性显示的样式
第6章 使用XSL格式化显示XML文件

6.1 XSL的特点 6.2 XSL变换步骤 6.3 XSL的文件结构 6.4 XSL的模式语言 6.5 XSL的常用控制标记 6.6 其它常用XSL标记
6.1 XSL的特点 的特点
XSL通过路径的方式来定位数据,从而可以轻易地提取出特定的 数据。 XSL提供了循环、条件、选择等控制语句。从这方面讲,XSL更接 近于程序设计语言。 XSL文件是由标记组成的,是一种特殊的XML文件。 XSL不仅可以实现CSS的所有功能,还可以实现CSS做不到的功能。 XSL的内容涉及两个部分:变换语言(XSL Transformation,XSLT) 和格式化语言(XSL Formatting Objects,XSL-FO)。
表示message标记的子标记中“id”属性值为2的persion标记。
message/persion[*/tel]
表示该路径下含有tel孙标记的persion标记。
XSL的路径匹配模式(7) 的路径匹配模式( ) 的路径匹配模式
5.复合条件匹配 所谓的复合匹配条件,就是把前面所介绍的几种单一条件结合到一 起,使之成为一个具有多重约束条件的一个语句。例如:
表示取出来的是第二条记录。 集合索引函数包括index()和end()。index()表示当前一组标记中的 第几个,0表示第一个。end()表示当前一组标记中的最后一个。
返回
6.5 XSL的常用控制标记 的常用控制标记
6.5.1 循环标记<for-each> 6.5.2 选择标记<if> 6.5.3 选择标记<choose> 6.5.4 求值标记<value-of>
第一条语句表示取出具有id属性且属性值为2的persion标记的id属性值, 第二条语句表示取出具有id属性且属性值为2的persion标记的name子标 记的标记内容。 如果只是输出当前标记的内容,则select属性可以省略。
第5章_利用XSL实现XML文档多种格式化显示

操作符专用字符 / 例子 /PRODUCTDATA 描述 选择PRODUCTDATA的直接的子元素。如果该 操作符出现在该模式开始时,它标 志应该从根节点来选择该子元素 在任何节点集中搜索指定的元素 指出当前的上下文 选择存在于当前元素父节点内的 PRODUCTNAME元素 选择所有元素 作为属性的前缀使用 选择所有的属性 从元素或者属性名中分离名称空间前缀 用来组合操作 应用一个过滤模式 求两个数之和 求两个数之差 求两个数之积 NUM1除以NUM2 NUM1与NUM2求模
5.2在XSLT样式表中使用XPATH模式
实例:使用XPATH模式实现产品销售情况 统计 问题 书店管理系统需要显示一个关于销售情况的 总结性报告。所有详细资料都放在一个XML 文档中。该数据包含关于产品的详细资料和 该产品的销售情况。
5.2在XSLT样式表中使用XPATH模式
实现效果
count(ns)
该函数返回XML文档中该节点的个数
count(//PRODUCT)将返回PRODUCT 节点的个数
5.2在XSLT样式表中使用XPATH模式
numeric函数
函数 number(obj) sum(ns) 描述 将参数转化为数字类型 返回参数节点集中的节点值的和 例子 number(“32”)返回整数32 sum(QUANTITY)返回所有QUANTITY 节点值的和
5.1 基于条件进行格式化数据
实现效果
5.1 基于条件进行格式化数据
分析
确定要显示的元素数据 确定根据条件格式化数据所需的条件 创建根据条件格式化数据的样式表 将样式表应用于XML文档 查看该XML文档
5.1 基于条件进行格式化数据
使用XSL格式化XML

第六章 xsl格式化xml
1
什么是xsl? 什么是 ?
Xsl(Extensible style language)可扩展样式语 言。 Xsl本身是一个完整的xml文档。
第六章 xsl格式化xml
2
Xsl的组成 的组成
由两部分组成: 数据转换语言和数据格式化语言
第六章 xsl格式化xml
17
通用匹配符
匹配任意节点使用”*|/”,使用该方式可以选择 元素的所有节点,隐藏的节点也可以被访问。 格式如下: <xsl:template match=“*|/”> <xsl:apply-templates/> </xsl:template>
第六章 xsl格式化xml
28
选择元素的属性
选择元素属性的格式:@属性名 <xsl:template match="学生"> <xsl:value-of select="@班级"/>: <xsl:value-of select="姓名"/><br/> </xsl:template>
第六章 xsl格式化xml
29
为模板选择多个元素
第六章 xsl格式化xml 22
直接使用元素名
元素名是最直接的选择节点的方式。
第六章 xsl格式化xml
23
路径选择方式
绝对路径:从根节点开始,“/”代表根节点。 如:在ch6_1.xml中,”姓名”节点的绝对路 径为:/学生列表/学生/姓名 相对路径:在当前节点出发。 如果当前节点为”学生列表”,则”姓名”节 点的相对路径为:学生/姓名
XML实验报告——XML文件的两种显示方式

XML实验报告计算机学院软件工程一、实验题目XML文件的两种显示方式二、实验目的1.理解CSS;2.学会使用CSS显示XML文件;3.理解XSL;4.学会使用XSL显示XML文件;5.对比CSS和XSL;三、实验代码1.用DTD文件生成的XML文件<?xml version="1.0" encoding="UTF-8"?><!--Sample XML file generated by XMLSpy v2007 ()--> <!DOCTYPE bookcase SYSTEM "课堂练习2(DTD文件).dtd"><?xml-stylesheet type="text/css" href="css.css"?><bookcase><book><b-name>书1</b-name><author><name>敖阳月</name><E-mail>邮箱1</E-mail></author><price>10</price><publishing-house><p-name>天津出版社</p-name><address>出版社地址1</address><zipcode>出版社编号1</zipcode><E-mail>出版社邮箱1</E-mail></publishing-house></book><book><b-name>书2</b-name><author><name>敖阳月</name><E-mail>邮箱2</E-mail></author><price>20</price><publishing-house><p-name>出版社名2</p-name><address>出版社地址2</address><zipcode>出版社编号2</zipcode><E-mail>出版社邮箱2</E-mail> </publishing-house></book><book><b-name>书3</b-name><author><name>作者3</name><E-mail>邮箱3</E-mail></author><price>30</price><publishing-house><p-name>天津出版社</p-name><address>出版社地址3</address><zipcode>出版社编号3</zipcode><E-mail>出版社邮箱3</E-mail> </publishing-house></book><book><b-name>书4</b-name><author><name>作者4</name><E-mail>邮箱4</E-mail></author><price>40</price><publishing-house><p-name>出版社名4</p-name><address>出版社地址4</address><zipcode>出版社编号4</zipcode><E-mail>出版社邮箱4</E-mail> </publishing-house></book><book><b-name>书5</b-name><author><name>敖阳月</name><E-mail>邮箱5</E-mail></author><price>50</price><publishing-house><p-name>出版社名5</p-name><address>出版社地址5</address><zipcode>出版社编号5</zipcode><E-mail>出版社邮箱5</E-mail></publishing-house></book><book><b-name>书6</b-name><author><name>作者6</name><E-mail>邮箱6</E-mail></author><price>60</price><publishing-house><p-name>出版社名6</p-name><address>出版社地址6</address><zipcode>出版社编号6</zipcode><E-mail>出版社邮箱6</E-mail> </publishing-house></book></bookcase>2.CSS文件bookcase{background-color: #FFFFCC;}book{border-style: double;border-color: #000080;display: block;margin-bottom: 20pt;padding: 10pt;text-align: center;}name,zipcode,p-name{font-family: 华a文?新?魏o;font-size: medium;font-weight: bold;padding-right:15pt;}b-name,address{font-family: 华a文?行D楷?;color: #008080;padding-right:15pt;display:inherit;}E-mail{font-family: 华a文?行D楷?;color: #888080;padding-right:15pt;display:inherit;}price{font-family: 华a文?彩¨º云?;color: #FF0000;padding-right:15pt;}3.实验截图4.用DTD文件生成的XML文件:<?xml version="1.0" encoding="UTF-8"?><!--Sample XML file generated by XMLSpy v2007 ()--> <!DOCTYPE bookcase SYSTEM "generateDTD.dtd"><?xml-stylesheet type="text/xsl" href="H:\XML\课堂练习5(xsl文件).xsl"?><bookcase><book><b-name>书1</b-name><author><name>敖阳月</name><E-mail>邮箱1</E-mail></author><price>10</price><publishing-house><p-name>出版社名1</p-name><address>出版社地址1</address><zipcode>出版社编号1</zipcode><E-mail>出版社邮箱1</E-mail></publishing-house></book><book><b-name>书2</b-name><author><name>敖阳月</name><E-mail>邮箱2</E-mail></author><price>20</price><publishing-house><p-name>出版社名2</p-name><address>出版社地址2</address><zipcode>出版社编号2</zipcode><E-mail>出版社邮箱2</E-mail></publishing-house></book><book><b-name>书3</b-name><author><name>作者3</name><E-mail>邮箱3</E-mail></author><price>30</price><publishing-house><p-name>出版社名3</p-name><address>出版社地址3</address><zipcode>出版社编号3</zipcode><E-mail>出版社邮箱3</E-mail> </publishing-house></book><book><b-name>书4</b-name><author><name>作者4</name><E-mail>邮箱4</E-mail></author><price>40</price><publishing-house><p-name>出版社名4</p-name><address>出版社地址4</address><zipcode>出版社编号4</zipcode><E-mail>出版社邮箱4</E-mail> </publishing-house></book><book><b-name>书5</b-name><author><name>敖阳月</name><E-mail>邮箱5</E-mail></author><price>50</price><publishing-house><p-name>出版社名5</p-name><address>出版社地址5</address><zipcode>出版社编号5</zipcode><E-mail>出版社邮箱5</E-mail> </publishing-house></book><book><b-name>书6</b-name><author><name>作者6</name><E-mail>邮箱6</E-mail></author><price>60</price><publishing-house><p-name>出版社名6</p-name><address>出版社地址6</address><zipcode>出版社编号6</zipcode><E-mail>出版社邮箱6</E-mail></publishing-house></book></bookcase>5.XSL文件<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="2.0" xmlns:xsl="/1999/XSL/Transform" xmlns:fo="/1999/XSL/Format"xmlns:xs="/2001/XMLSchema"xmlns:fn="/2005/xpath-functions"><xsl:template match="/"><html><head><title>图书信息</title></head><body><center><h2>图书列表</h2><table border="5" width="80%"><tr><th>书名</th><th>作者</th><th>价格</th><th>出版社</th></tr><xsl:for-each select="bookcase/book"><xsl:sort select="price" order="descending"/><tr><td><xsl:value-of select="b-name"/></td><td><xsl:if test="author/name='敖阳月'"><xsl:attributename="style">color:blue</xsl:attribute></xsl:if><xsl:value-of select="author/name"/></td><td><xsl:if test="price>=40"><xsl:attributename="style">color:red;font-size:large</xsl:attribute></xsl:if><xsl:value-of select="price"/></td><xsl:choose><xsl:when test="publishing-house/p-name='天津出版社'"><td style="background-color:gray"><xsl:value-ofselect="publishing-house/p-name"/></td></xsl:when><xsl:otherwise><td style="background-color:yellow"><xsl:value-ofselect="publishing-house/p-name"/></td></xsl:otherwise></xsl:choose></tr></xsl:for-each></table></center></body></html></xsl:template></xsl:stylesheet>6.实验截图四、实验步骤1.CSS显示XMLa)创建一个关于图书信息的DTD文件,通过该DTD文件自动生成有6本书的XML文件;b)新建一个CSS文件,在该文件中将选择器定义为XML文件中的各标签名,并设置各属性以达到不同的显示效果;c)在XML文件的序言后添加PI指令,导入外部CSS;2.XSL显示XMLa)创建一个关于图书信息的DTD文件,通过该DTD文件自动生成有6本书的XML文件;b)新建一个XSL文件,利用XSL语法定义模板元素、选取XML文档中的数据;c)在XML文件的序言后添加PI指令,导入XSL;五、实验心得通过老师介绍CSS禅意花园,并且自己也浏览了该网站,对CSS 产生了极大的兴趣,但下载了CSS文件并仔细浏览分析后发现CSS 真的是博大精深,需要下一定的功夫去研究学习。
XML数据显示

新建一个页面,页面名称为“userxslt.aspx”,然后在 “userxslt.aspx.cs”文件中添加如下代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath;
XSL是一种解释机制。它将某个来源的原 XML数据结构解释或转换为另一个来源可以理 解的数据结构。此外,XSL还可用于根据接收 者的要求来更改信息的XML展示方法。
XSL实例
本示例加载了一个XSL样式表,将一个称为XMLFile.xml的文件读入到 XPathDocument中,并对一个称为XSLTFile.xsl的虚构文件上的数据执行转 换,将格式化输出在页面上。
XML数据显示
• XSL基本概念 • XSL实例
XSL基本概念
XSL(eXtensible Stylesheet Language,可 扩展样式语言)是为XML文件定义的一种标识 语言,它将提供远远超过CSS的强大功能,如 将元素再排序等。实际上简单的XML已可被 CSS所解释,然而复杂的高度结构化的XML数 据或XML文档则只能依赖于XSL极强的格式化 能力而献给用户。
基于XML的数据交换与格式化技术

基于XML的数据交换与格式化技术XML(可扩展标记语言)是一种广泛使用的标记语言,用于各种数据交换和格式化任务。
与HTML等静态标记语言不同,XML允许用户根据需要定义自己的标记集,从而更好地适应各种数据任务。
在XML的帮助下,数据可以更方便地交换、编辑、浏览和呈现。
本文将探讨基于XML的数据交换和格式化技术。
一、XML的基本特征XML定义了一套用于表示数据的标记语言。
与HTML等语言类似,XML使用标签来标识文档中的元素,但它可以定义自己的标记规则,从而实现更灵活的数据表示。
XML还支持层次结构,可以嵌套标签以表示元素之间的复杂关系。
XML标记集中的元素、属性和实体必须按照语法规则进行嵌套,行为被称为“良好形式(Well-Formed)”。
XML标记语言中定义了许多的DTD(文档类型定义)和SCHEMA(模式定义语言)。
DTD和SCHEMA都是XML的特点,DTD用来验证XML文档是否符合规范,SCHEMA用来验证XML 文档中数据类型是否符合要求。
二、XML的应用场景XML被广泛用于各种数据交换和格式化任务。
其中,最常见的应用包括:1、数据交换:XML可以用于将数据从一个应用程序传输到另一个应用程序。
XML可以存储文本和二进制数据,并可在不同的平台和操作系统之间进行数据传输和交换。
XML的数据转换工具能够将数据从一种格式转换为另一种格式,并且保留数据的完整性。
2、Web服务:XML语言还有一个非常重要的用途是作为Web 服务的交互协议。
Web服务可用于通过网络连接两个或多个应用程序。
使用XML作为Web服务的交互协议可以简化Web服务的处理、通信和消费。
3、文档格式化:XML可用于格式化复杂文档并将其显示在Web浏览器,手机等设备上。
XML文档可以作为XHTML或HTML文档的替代格式使用,而且它们比传统的HTML文档更容易解析和转换。
三、基于XML的数据交换和格式化技术1、XML解析器:XML解析器旨在将XML文档分析为数据结构,使应用程序能够访问和操作XML数据。
XML文件格式及特点

XML文件格式的特点1. 具有良好的格式XML 文档格式属于良好格式的文件。
HTML 文件中的标记,有些是不需要结尾标记的,如<br>,有些网页缺少若干结尾标记,照样能正确显示。
而XML 的标记一定要拥有结尾标记,例如:<name>张三</name>即,XML 标记一定是成双成对的。
如果没有结尾标记,那么在结束的“>”前,需要有“/”,表示开头和结尾是在同一标记内,例如:<book sales="yes"/>2. 具有验证机制XML 的标记是程序员自己定义的,标记的定义和使用是否符合语法,需要验证。
XML有两种验证方法。
一种是DTD,它是一个专门的文件,用来定义和检验XML 文档中的标记。
另一种是XML Schema,用XML 语法描述。
它比DTD 更优越,多个Schem a 可以复合使用X M L 名称空间,可以详细定义元素的内容及属性值的数据类型。
3. 灵活的Web应用在 XML 中数据和显示格式是分开设计的,XML 元数据文件就是纯数据的文件,可以作为数据源,向HTML 提供显示的内容,显示样式可以随H TML 的变化而丰富多彩。
也就是说,HTML 描述数据的外观,而XML 描述数据本身,是文本化的小型数据库表达语言。
HTML 数据和显示格式混在一起,显示出一种样式。
XML 采用的标记是自己定义的,这样数据文件的可读性就能大大提高,也不再局限于H T ML 文件中的那些标准标记了。
由于XML 是一个开放的基于文本的格式,它可以和HTM L 一样使用HTT P 进行传送,不需要对现存的网络进行改变。
数据一旦建立,X ML 就能被发送到其他应用软件、对象或者中间层服务器中做进一步的处理,或者可以被发送到桌面用浏览器浏览。
XML样式表技术(CSS与XSL)

2.CSS——并非为XML专门设计的样式表技术
【
1.按要求对XML文档进行CSS定义;
2.使用CSS文件对XML进行显示;
3.按要求为XML文档编写XSL样式文件;
4.使用XSL对XML进行显示;
【
配置有vs2010开发环境的计算机设备
【
1.XML的样式表技术
XML本身不提供任何相关显示的方法,也不像HTML带有预定义的可提供显示功能的标签,在XML中可以使用CSS和XSL两种样式表技术来提供XML数据的格式化显示。
<?xml version="1.0" encoding="gb2312"?>
(3)定义“联系人列表”元素的显示(由“联系人”组成)
联系人列表{display:block;}
(4)定义“联系人”元素的显示
联系人{
display:block;
position:center;
}
(5)定义“姓名”及“电话”元素的显示
</学生>
<学生>
<学号>0907045206</学号>
<姓名>知返</姓名>
<成绩>106</成绩>
</学生>
</期末数学成绩表>
数学XSL文档:
<?xml version= "1.0" encoding= "utf-8"?>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用XML格式化对象的属性显示样式
‐form、item…
1.首先建立一个数据集
a.[方法一,] 命名引用方式导入一个XML文件, 这个XML文件就是按照一定的语法
格式表述了表单的显示样式.
b. [方法二,] 或者直接选择新建好的数据集, 切换到”Viewer” 模式, 如果是管理员权
限的话, 就可以直接在右边的界面中直接敲打代码, 应用自动产生Stylesheet.xml
的命名引用,而 如果不是管理员只有浏览的权限.
2.应用格式到指定的表单
a.
如上图所示, 第一个下拉列表框中就是用来选择需要应用格式的表单
右边的三个选项分别为格式 应用的目标格式: 属性/表单/概要
”属性”: 右击对象选择属性后显示
”表单”: 显示在Viewer模式下
”概要”: 显示在Summary下
b.选择好需要应用格式的对象 , 单击”应用” , 完成格式渲染
3.格式化XML的语法说明
a.基本框架元素
<?xml version="1.0" encoding="UTF‐8"?> //XML文件的声明,必需要输入
<rendering> //格式化标记区域
<page> //标识第一个tab界面
<property /> //显示表单属性的设置,只有使用了这个元素的属性才会显示出来
</page>
<page format="TwoColumn">
<firstcolumn> //该tab页面中第一列的属性,只有page有属性format时才可以使用
<separator /> //插入一条横线
</firstcolumn>
<secondcolumn> //该tab页面中第二列的属性
</secondcolumn>
</page>
</rendering>
b.元素属性
1. rendering: 不需要属性
2.<page titleKey=”general” title=”General” format=”OneColumn”>
i.titleKey:
ii.title: 显示的名称, 如果只有一列, 即format=OneColumn时无法显示输入的名称
iii.format: [可选][胖客户端和瘦客户端]显示几个列, 最多两列, 不输入值默认为一列
format=”OneColumn”
Format=”TwoColumn”
3.<property name="item_id" />
: [必须],属性在数据库中ID,只有输入正确才能够有效果, 严格的名称
应该在BMIDE中查看, 如果没有经过汉化的话, 表单上依然显示的原来的id.
j.icon: [可选][胖客户端],显示属性的图标,图标的目录位置位于胖客户端 示例:icon=”images/group.gif”
k.renderingtype: [可选][胖客户端和瘦客户端]
renderingtype=”headed” [为默认值]将属性名称显示在输入框的左边
renderingtype=”headless”不显示属性名称
renderingtype=”titled” 显示属性名称在上面
l.renderingHint: [可选]
一般属性都是有样式的,比如说是string ,intergrate ,char等,每个样式都有其自己的渲染格式,比如对于String来说,
如果size < 60就是textfield
如果60 < size < 2500就是textarea
如果size >= 2500就是longtext
renderingHint就是来指定属性格式的
renderingHint=”textfield” ,string格式默认的显示
renderingHint=”textfield” column=”20” column,定义了输入框的长度,宽度
默认为1,且不可以改动
renderingHint=”textarea” ,
renderingHint=”textarea” column="12" row="5",定义了长度和宽度
renderingHint=”checkbox” 多选按钮
renderingHint=”radiobutton”, 单选按钮,好似上面这两个用处没有试出,可能要结合属性的值列表
……….
其它的属性省略介绍,比较常用的应该是:
a.控制属性的显示和屏蔽
b.属性的两列显示样式
c.多页显示属性
4.补充说明:
对如如何更改id的显示名称,比如汉化成中文显示的方法:
对于单个用户的显示修改: user_property_names.xml
对于整个系统的显示修改: system_property_names_locale.xml
这两个文件都位于TC_ROOT\lang\textserver\language directory.
如:<key id="my_prop">My Property</key>。