XML 数据岛排序
《XML案例教程》课件第8章
作用 显示第一条记录 显示上一条记录 显示下一条记录 显示最后一条记录 显示指定编号的记录(编号从 0 开始)
【例8-4】 案例说明:使用数据岛记录集属性翻页显示多条记录。 程序名称:ch8-2.xml 01 <?xml version="1.0" encoding="UTF-8"?> 02 <BookList> 03 <Book> 04 <Title>软件系统开发技术(修订版)</Title> 05 <Author>潘锦平,施小英,姚天昉</Author> 06 <Publisher>西安电子科技大学出版社</Publisher> 07 <PubDate>2001年1月</PubDate>
作用 创建超链接 在页面引入 Java 小程序 创建按钮 创建可视化的层 创建格式化内联文本 创建框架 创建内框架 插入图像 创建复选框 创建单选按钮 创建隐藏控件 创建口令输入框 创建文本输入框 创建标签 创建滚动文字 创建下拉列表 创建多行文本输入区 创建表格
表中被绑定的innerHTML属性允许XML元素内容中出 现HTML标记,这些标记在浏览器中被解释执行。当含有 HTML标记的XML元素被绑定到src、value、innerText等属 性时,浏览器不处理这些标记,只原样显示。
datafld="PubDate"></span><br/>
26
ISBN:
27
<span datasrc="#XMLData"
datafld="ISBN"></span><br/>
利用AJAX.NET与XML数据岛实现无刷新数据绑定
【 w r 】 A A . E ;Q e e 20 ; M ;o ee ;a -on l os d J X N T S LSr r 05X L n- f s D t bud v rr h a
21 00年 2 月
廊坊师范学院学报 ( 自然科学版 )
Junl fL nfn eces oeeN tma Si c d in orao aga gT ahr C 1 g( au l c neE io ) ] e t
Fe 2 1 b.0 0
V0 . 0 No 1 1 1 .
系统存 在 一个 弊 端 : 采用 同步交 互 过程 , 户 向 用
HT P服务 器发 出请求 后 , 务 器接 收请 求 进行 处 T 服 理, 在处理 过程 中, 用户 一 直 处 于 等待 状 态 , 到服 直
务器返 回一个 HT ML页面 。当用户 量增 大时 , 户 用
在 访 问服务器 时浏览 器 就会 出现 “ 白屏 ” 用户 的体 , 验是 不连贯 的 。A A J X的 出现 , 改善 了这 一 问题 。
XML数据 岛实现无刷 新数据绑定。
【 关键词 】 AA . E ;Q e e 20 ; M ; J X N T S LSr r 05X L 无刷新 ; v 数据绑定
Usn AX . i g AJ NET n L t sa d I lm e t a d XM Da a Il n mp e n s
用户可以做其它操作。等服务器处理完用户请求之
操作XML数据岛数据
操作XML数据岛数据在IE浏览器中,当为XML数据岛创建一个标识符ID的时,实际上就是创建了操作XML数据岛的数据源对象DSO。
此处DSO对象可以看作是一个DOM树模型的根节点,即将XML数据岛作为一个加载到内存中的树而处理。
DSO对象可以根据DOM的树模型结构对XML数据岛进行添加、删除和修改节点,其执行效果会显示在当前HTML页面的数据上面,但不会影响XML数据岛本身的数据改变。
下面创建一个案例,演示使用DSO对象操作XML数据岛数据。
首先创建XM将上述代码保存,名称为Example7.xml。
创建引入XML数据岛的HTML网页,将上述代码保存,名称为Example7.html。
直接双击该文件,会显示如图8-9所示窗口:图8-9 DSO操作XML数据岛单击【显示根节点名称】按钮,会调用JavaScript函数c(),其中代码“dos.doc umentElement.nodeName”表示获取根节点名称,dos为数据源对象,此处为DOM 树模型根节点,documentElement为元素根节点,nodeName表示节点名称属性。
其执行结果如图8-10所示。
图8-10 显示根节点单击【显示第一个子节点名称】,会调用JavaScript函数d()。
该函数中,代码“dos.documentElement.childNodes[0].childNodes[0].nodeName”表示获取第一个子节点名称,childNodes[0]表示元素子节点集合的第一个子节点,第一个childNodes[0]表示根节点(<图书列表>)的子节点(第一个<图书>节点)列表,第二个childNodes[0]表示第一个图书节点的第一个子节点(<标题>)。
如果要获取第一个图书节点的子节点的文本数据,还需要使用firstChild,因为文本数据节点是<标题>节点的子节点。
其执行结果如图8-11所示:图8-11 显示第一个子节点单击【增加节点】按钮,会调用add函数。
xml整理格式
xml整理格式XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。
要整理XML的格式,主要包括以下几个步骤:1.缩进:对XML元素进行缩进,以提高可读性。
通常,使用空格或制表符进行缩进,使得嵌套关系更加清晰。
2.换行:将不同的XML元素放在不同的行,以避免一行过长难以阅读。
3.标签大小写:统一XML标签的大小写,通常使用小写字母,以确保一致性。
4.属性排列:如果XML元素有属性,可以按照一定规则排列,例如按照字母顺序或根据属性的功能进行排列。
5.注释:使用注释来解释XML结构或提供其他相关信息,以便阅读者更好地理解XML 文件的内容。
以下是一个简单的XML示例,演示了上述整理格式的一些基本原则:```xml<bookstore><book><title>XML教程</title><author>John Doe</author><price>29.95</price></book><book><title>Web开发指南</title><author>Jane Smith</author><price>39.99</price></book></bookstore>```这个示例中,元素之间有适当的缩进和换行,标签使用小写字母,属性没有特定的排序,但整体结构清晰可读。
具体的格式整理方式可以根据团队或个人的习惯和项目要求进行调整。
遍历XML数据岛数据
遍历XML数据岛数据我们知道,通过数据源对象DSO可以对数据岛节点进行显示、查询、修改、删除和添加等操作,这些操作的依据是建立在树模型的基础之上的。
除此之外,DS O还可以把XML数据岛作为ADO记录集进行处理,这样做的好处是可以利用AD O提供的各种方法对数据源进行访问,尤其是当把数据岛与类似SPAN、DIV和IN PUT等HTML元素绑定时。
通常这些元素显示的是记录集的首条记录,要想对记录集进行遍历浏览,一个是使用前面我们讲到的表格对象绑定,另外一个是可以使用ADO的方法结合脚本程序完成相应的浏览数据的功能。
比如创建一个按钮响应函数,只要用户点击“Next”按钮,就可以逐条浏览相应的记录。
除了显示记录数据之外,脚本程序还可以对记录集进行快速查询、排序、编辑等操作。
但要指出的是,虽然ADO技术中提供了类似SortColumn和SortAscendin g等方法对XML数据进行排序,但是效果不如XSL中的排序操作,所以建议大家充分利用XSL技术来实现这部分功能。
当DSO数据源对象作为一个记录集对象来看待的时候,该记录集对象RecordS et具有下面几个常用的属性和方法,如表8-1所示:现在创建一个案例,使用上述方法和属性遍历XML数据岛数据。
首先创建X将上述代码保存,名称为Example8.xml。
创建引入XML数据岛的HTML页面,将上述代码保存,名称为Example8.html。
直接双击该文件,会显示如图8-15所示窗口:图8-15 遍历XML数据岛数据在该案例中,首先引入XML文件Example8,即创建数据岛对象dso。
当单击按钮时,会调用相应的JavaScript方法显示数据。
在JavaScript脚本程序中,移动到第一条记录使用moveFirst()方法,向下移动一条使用moveNext()方法,移动到最后一条使用moveLast()方法,向上移动一条记录使用movePrevious()方法。
XML 数据岛数据分页显示
</tr>
</table>
(6)创建分页表单元素,其代码为:
<body onload="ViewRecords()">
<input type="button" value="第一页" onclick="nput type="button" value="上一页" onclick="PrevPage()">
<input type="button" value="下一页" onclick="NextPage()">
<input type="button" value="最后一页" onclick="LastPage()">
(7)实现JavaScript函数,其代码为:
<script language = "JavaScript">
XML
利用DSO数据源对象,可以分页显示数据岛数据。此时是将DSO数据源对象作为ADO的RecordeSet记录集看待的,可以直接利用RecordeSet记录集提供的nextPage()和previousPage()实现分页显示。其实现步骤如下所示:
(1)分析程序。此程序难点在于理解RecordSet记录集,该程序可以分为两个部分,HTML网页和XML文件。
function ViewRecords()
{
JAXB--@XmlType注解标注xml生成顺序
JAXB--@XmlType注解标注xml⽣成顺序默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使⽤@XmlType的propOrder属性来指定序列化的顺序。
第⼀步:定义java类时,使⽤@XmlType(propOrder = { "id", "name", "age","book"})指定输出顺序。
Java代码1. package step2;2. import java.util.Set;3.4. import javax.xml.bind.annotation.XmlElement;5. import javax.xml.bind.annotation.XmlElementWrapper;6. import javax.xml.bind.annotation.XmlRootElement;7. import javax.xml.bind.annotation.XmlType;8.9. @XmlRootElement10. @XmlType(propOrder = { "id", "name", "age","book"})11. public class Customer {12. String name;13. int age;14. int id;15. Set<Book> book;16. @XmlElement(name="name")17. public String getName() {18. return name;19. }20.21. public void setName(String name) {22. = name;23. }24.25. @XmlElement(name="age")26. public int getAge() {27. return age;28. }29.30. public void setAge(int age) {31. this.age = age;32. }33. @XmlElement(name="id")34. public int getId() {35. return id;36. }37.38. public void setId(int id) {39. this.id = id;40. }41.42.43. @Override44. public String toString() {45. return "Customer [id=" + id + ",name=" + name + ",age=" + age + ",book=" + book + "]";46. }47. @XmlElementWrapper(name="books")48. @XmlElement(name="book")49. public Set<Book> getBook() {50. return book;51. }52.53. public void setBook(Set<Book> book) {54. this.book = book;55. }56.57.58. }输出的xml:Xml代码1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>2. <customer>3. <id>100</id>4. <name>suo</name>5. <age>29</age>6. <books>7. <book>8. <id>1</id>9. <name>哈⾥波特</name>10. <price>100.0</price>11. </book>12. <book>13. <id>2</id>14. <name>苹果</name>15. <price>50.0</price>16. </book>17. </books>18. </customer>注:1.对于@XmlElementWrapper标注的属性,不能出现在@XmlType的propOrder列表中。
数据岛使用形式
数据岛使用形式数据岛有两种定义方式,一种是直接将上述XML数据嵌入到HTML页面中,另一种是见XML数据保存在单独的XML文件中,在HTML页面中引入XML文件中的数据。
通过datasrc,datafld属性,可以将XML数据岛绑定到HTML控件。
1.嵌入XML数据使用非官方标准的<xml>标记可以将XML数据嵌入到HTML页面中。
实际上此时可以将XML数据作为一个字符串来看待。
创建HTML页面,打开记事本,输将上述代码保存,名称为Example2.html。
直接双击该网页,会显示如图8-2所示窗口:图8-2 HTML页面嵌入XML数据在该文件中,通过使用<xml>标记包含一个xml数据岛,该部分数据是独立的,需要注意的是要给XML数据岛分配一个id,其代码为“id="note"”。
如果要使用XML文件中的数据,需要调用id号。
在下面的标记中,使用datasrc和datafld把XML中的数据和表单元素绑定。
d atasrc表示HTML标记绑定的XML数据岛名称。
datafld表示获得该XML文档指定的标记中的内容。
该方式XML中的数据和HTML显示数据的标记放在一起,没有显示出数据和显示样式的分离,不推荐这种方式。
2.引入XML文件将XML文档数据嵌入到HTML页面,是一种可行的方法,但不是一种好的方法。
我们知道数据岛产生的根本原因,就是将数据和显示样式进行分离。
在HTML 页面中引入XML文档,很好的达到了界面和数据的分离,只需要在HTML页面中嵌入“<xml id="island" src="xxx.xml"></xml>”其中id是XML文档标识符,src 属性值是xml文件存放位置。
现在创建一个案例,演示在HTML页面中引入XML文档。
首先创建XML文档,打开记事本,输入下列代码:示窗口:图8-3 HTML页面引入XML文件在该案例中,XML文件是单独存在的,HTML页面如果要使用XML中的数据,必须通过<xml></xml>标记将XML文件引入过来,并赋予该文档在HTML网页中唯一标识符。
第7章 XML数据源对象6
使用脚本语言加载DSO数据源 数据源(XML文件 文件) 使用脚本语言加载 数据源 文件
18
-数据源对象-
-XML基础-
7.4.2 HTML中的XML数据岛记录集页面管理
9
-数据源对象-
-XML基础-
表7.1 支持DSO的HTML元素 HTML元素 元素 a applet button div frame iframe img input type="button" input type="checkbox" input type="hidden"
-数据源对象-
可更新 否 是 否 否 否 否 否 否 是 是
【例2】只显示单条记录时的绑定方法 】 Example_2
6
-数据源对象-
-XML基础-
7.1.3 XML与HTML结合的优势
1.数据可以在本地处理 2.提供给客户端结构化数据视图 3.集成不同来源的结构化数据 4.通过粒度更新来提高性能 5.网页界面修改不易破坏数据 XML数据源对象能视为ADO Recordset 对象。
movePrevious():指向前一个数据项。 :指向前一个数据项。 moveNext():指向下一个数据项。 :指向下一个数据项。 moveFirst():指向第一个数据项。 :指向第一个数据项。 moveLast():指向最后一个数据项。 :指向最后一个数据项。 addNew():增加一个数据项。 :增加一个数据项。
呈现HTML 呈现 否 否 是 是 否 否 否 是 否 否
qdomelement attribute 顺序
QDomElement属性顺序1. 简介QDomElement是Qt中用于操作XML文档的类之一,它代表了XML文档中的元素节点。
在使用QDomElement时,了解其属性的顺序对于正确地操作XML文档非常重要。
本文将介绍QDomElement属性的顺序,以便于开发者在实际应用中能够更加高效地操作XML文档。
2. QDomElement属性列表在了解QDomElement属性的顺序之前,首先需要了解它包含的属性。
以下是QDomElement可能包含的属性列表:- tagName: 元素节点的标签名- attribute: 元素节点的属性- text: 元素节点的文本内容- firstChild: 元素节点的第一个子节点- lastChild: 元素节点的最后一个子节点- attributes: 元素节点所包含的所有属性- childNodes: 元素节点的所有子节点3. QDomElement属性顺序在实际使用QDomElement时,需要遵循一定的属性操作顺序,以确保XML文档的正确性和操作的准确性。
以下是QDomElement属性的操作顺序:- 先设置tagName属性: 由于元素节点的标签名是必须的,所以在创建或操作QDomElement时,首先需要设置tagName属性。
- 设置attribute属性: 在设置元素节点的属性时,通常需要在设置文本内容之前,因此在tagName后设置attribute属性。
- 设置text属性: 文本内容通常是在设置属性之后进行设置的,因此在设置完属性之后再设置text属性。
- 设置childNodes: 若需要设置元素节点的子节点,应在设置完tagName、attribute和text属性之后,最后设置childNodes属性。
- 获取属性值: 在读取元素节点的属性值时,同样需要遵循一定的顺序,先获取tagName,然后是attribute和text属性的值,最后是childNodes属性的值。
XML数据岛结合AJAX实现Web的异步刷新
麻 烦 。修 改 数 据 岛 中 的数 据 , 面 上 与 之 绑 定 的 H ML元 素 页 T
的值 也 随 之 改 变 。
面 从 Itre 获 取 信 息 _ 访 问 的 动态 页 面信 息 需 要 对数 据库 ne t n l j 。 进 行 更 新 或 查 询 。 统 的 Bs模 式 的 W e 传 , b系统 存 在 一 定 的 不 足 : 是 数 据 的 显示 内 容 与 形 式 没 有 分 离 , 息 处 理效 率 低 ; 一 信 二是采用同步交互过程 。 即客 户 端 向服 务 器 发 出 Hrr 求 , rP请
张 琳 .张 国 平
( 顶 山 学 院 软 件 学院 ,河 南 平 顶 山 平
470 6 0 0)
摘 要 : 据 岛 作 为 HT 数 ML文 档 的 一 种 交互 手 段 , 通 过 特 定 的 标 记 将 X 它 ML元 素 嵌 入 到 H ML页 面 中 , 够 很 好 地 展 T 能
服 务 器 接 收 请 求 并 进 行 处 理 .在 处 理 过 程 中 , 户 一 直 处 于 用 等 待 状 态 , 到 服 务 器 返 回一 个 H ML 页 面 。当用 户 量 不 断 直 T 增 大 时 . 户 在 访 问 服 务 器 时 , 览 器 就 会 等 待 刷 新 整 个 页 用 浏 面 , 页 面 中包 含 的表 单 比较 多 时 , 导 致 页 面 呈 现 “ 当 会 白屏 ” ,
rs l h w ta ,i h e p l ain d v lp n rcs ,u igAJ e h oo yc nrd c h ewokla n eut so h t n teW b a pi t e eo me tpo e s s AX tc n lg a e u e ten t r o d a d s c o n
对map集合进行排序
对map集合进⾏排序今天做统计时需要对X轴的地区按照地区代码(areaCode)进⾏排序,由于在构建XMLData使⽤的map来进⾏数据统计的,所以在统计过程中就需要对map进⾏排序。
⼀、简单介绍Map在讲解Map排序之前,我们先来稍微了解下map。
map是键值对的集合接⼝,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。
其中这四者的区别如下(简单介绍):HashMap:我们最常⽤的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。
HashMap最多只允许⼀条记录的key值为Null(多条会覆盖);允许多条记录的Value为 Null。
⾮同步的。
TreeMap: 能够把它保存的记录根据key排序,默认是按升序排序,也可以指定排序的⽐较器,当⽤Iterator 遍历TreeMap时,得到的记录是排过序的。
TreeMap不允许key的值为null。
⾮同步的。
Hashtable: 与 HashMap类似,不同的是:key和value的值均不允许为null;它⽀持线程的同步,即任⼀时刻只有⼀个线程能写Hashtable,因此也导致了Hashtale在写⼊时会⽐较慢。
LinkedHashMap: 保存了记录的插⼊顺序,在⽤Iterator遍历LinkedHashMap时,先得到的记录肯定是先插⼊的.在遍历的时候会⽐HashMap慢。
key和value均允许为空,⾮同步的。
⼆、Map排序TreeMapTreeMap默认是升序的,如果我们需要改变排序⽅式,则需要使⽤⽐较器:Comparator。
Comparator可以对集合对象或者数组进⾏排序的⽐较器接⼝,实现该接⼝的public compare(T o1,To2)⽅法即可实现排序,该⽅法主要是根据第⼀个参数o1,⼩于、等于或者⼤于o2分别返回负整数、0或者正整数。
Chap 9 使用数据岛显示XML数据
现根据源文档的某个条件来改变输出结果。
XML
HYM
教程
9.1 数据岛的基本概念
XML的数据源对象(Data Source Object ,DSO),又称 “数据岛”(Data Islands),是另外一种显示XML数据的 方式。 DSO的实现机制是将一个或一段XML文档作为一个类似 于数据库的数据源,使用传统的操作数据库的方法,来进行 显示和操作。
9.2 通过表格绑定多个记录
XML
HYM
教程
这里,<table>标记的作用类似于脚本语言中的循环,可
自动显示第二层所有同名的元素,生成的表行数取决于数据岛 的内容。
由于<td>标记本身并不是一个可绑定的HTML标记,所以通
常是通过可绑定的<span>标记绑定到某个子元素。
XML
HYM
教程
9.2.1 使用简单表格显示XML文档
XML
HYM
教程
9.2 通过表格绑定多个记录
<HTML> Ch9-3.htm <HEAD><TITLE> 通过简单表格来显示数据岛数据</TITLE> </HEAD> <BODY> <xml id="xmldata" src=“stu2.xml"></xml> <h2 align="center">信息工程分院学生名单</h2> <table datasrc="#xmldata" border="1" cellpadding="5" align="center"> <thead> <th>姓名</th><th>学号</th><th>性别</th> <th>班级</th><th>出生年月</th> </thead> <tr> <td><span datafld="姓名"></span></td> <td><span datafld="学号"></span></td> <td><span datafld="性别"></span></td> <td><span datafld="班级"></span></td> <td><span datafld="出生年月"></span></td> </tr> </table> </BODY> </HTML>
xml标签的顺序
xml标签的顺序
XML标签的顺序非常重要,因为它会直接影响到XML文档的解析和使用。
一般来说,XML标签的顺序应该按照以下几个原则来排列: 1. 首先,应该将XML文档的根节点放在最前面,并将它的子节点依次排在后面。
这样可以让数据的结构更加清晰明了。
2. 其次,应该将相关联的节点放在一起。
比如说,如果一个账户信息包含用户名、密码和邮箱地址等信息,那么这些节点应该放在一起,而不是分散在文档的各个角落。
3. 再次,应该将必要的节点放在前面。
比如说,如果一个文档需要引用外部的DTD或XSD文件,那么这些声明应该放在文档的开头。
4. 最后,应该尽量遵循XML的语法规则。
比如说,每个节点都应该有一个结束标记,而且标签名应该全部小写等。
总之,XML标签的顺序虽然看起来很琐碎,但是它对于XML文档的可读性和可维护性都有着极为重要的影响。
因此,在编写XML文档时,一定要注意标签的顺序,尽量按照一定的规则和原则来排列。
- 1 -。
一种通用XML数据岛动态生成和数据绑定方法
一种通用XML数据岛动态生成和数据绑定方法作者:张文学来源:《现代电子技术》2009年第02期摘要:为了减少网页访问时网络的负载,采用XML数据岛技术实现网页中数据的处理。
介绍XML数据岛的概念,并讨论Web页中XML数据岛生成和绑定的机制,给出一种使用ASP和ADO技术由数据库动态生成XML数据岛,并动态绑定数据的通用方法,可应用于各种基于Web的应用系统,提高开发效率。
关键词:XML数据岛;动态生成;数据绑定;Web程序设计;数据库中图分类号:TP393文献标识码:B文章编号:1004 373X(2009)02 120 03Universal Method of XML Data Island Dynamic Generation and Data BindingZHANG Wenxue(Luoyang Institute of Science and Technology,Luoyang,471023,China)Abstract:To reduce the network load when visiting the Web page,using XML data island technology to process XML data in Web.This article introduces the concept of XML dataisland,discusses the mechanism of XML data island generation and binding in Web Page,gives the universal method of XML data island generated from database with ASP and ADO,and binds XML data dynamically,applicable for various applications based on Web.It improves the efficiency of Web development.Keywords:XML data island;dynamic generation;XML data binding;Web programdesign;database0 引言XML(eXtensible Markup Language)语言是由W3C定义的一种元标记语言,具有较强的数据表示能力,但显示能力不如HTML。
数据岛访问XML元素内容
数据岛访问XML元素内容在HTML文档中嵌入数据岛之后,就可以将XML数据岛与HTML元素绑定在一起。
每一个即数据岛都有唯一的ID号。
其过程是首先将HTML元素中的datasrc 属性设置为相应的id,就可以把HTML元素和数据岛联系在一起。
然后再通过设置datafld属性值,来确定所提取的XML元素。
注意:并非所有的HTML元素都能与XML数据岛绑定。
目前,支持这种DS O绑定机制的元素如下:A、APPLET、BUTTON、DIV、FRAME、IFRAME、IMG、INPUT(此处类型是:CHECKBOX、HIDDEN、LABEL、PASSWORD、RADIO和TEXT)、LABEL、MARQUEE、SELECT、SPAN、TABLE和TEXTAREA。
利用这些标记可以显示指定的数据,并在绑定的时候显示指定的样式。
绑定的方式按照HTML元素的性质可以分为两种:单值对象和表格对象。
单值对象的数据绑定需要在HTML元素中设置DA TASRC属性和DA TAFLD属性。
DATASRC属性是区分XML数据岛对象的唯一标识,并且必须加上前缀“#”,DA TAFLD属性则标识了数据岛中的元素对象。
表格对象,主要是与HTML中的<TABLE>标签绑定。
一般地,可以借助DSO等ActiveX控件更方便、有效地处理表格数据。
1.单值对象绑定单值对象绑定时,只能显示一条记录。
如果多个HTML元素都绑定同一个XM L标记,此时可能会出现重复现象。
现在创建一个案例,演示单值对象的绑定。
首先创建XML文档,打开记事本,输入下列代码:将上述代码保存,名称为Example4.xml。
创建绑定XML文档的HTML网页,将上述代码保存,名称为Example4.html。
直接双击该文件,会显示如图8-4所示窗口:图8-4 单值对象绑定从程序执行结果可以看出,第一个姓名标记内容被连续的提取了两次。
究其原因,HTML页面把嵌入的XML数据岛作为一个记录集Recordset来看待,类似于数据库中形成的记录集。
XML数据岛
XML数据岛,数据绑定1、XML的局限性目前,许多Web网站的内容数据都存放在数据库或数据文件中。
对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。
为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式当做相互独立的服务分别提供。
HTML那种蕴数据于显示之中的方式显然不合乎这种需求。
因此,把原始数据存放在XML文档中,使用样式单文件显示内容是XML技术适合于电子商务的优势所在。
但从本质上来说,XSL技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及HTML那样丰富。
对编程人员来说,一种较为理想的方案是把HTML和XML两种技术相结合,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用HTML那千变万化的显示技巧。
XML数据岛就是这种技术融合的产物,它使用<XML>标签把XML数据直接嵌入到HTML 页面中,从而实现了二者的优势互补。
2、IE中数据岛的处理方式为了能够处理这种内嵌XML代码的HTML页面,Internet Explorer 4.0(以下简称IE 4.0)引入了DSO(Data Source Objects,数据源对象)技术,用Java Applet实现。
例如:<APPLET CODE=“com.ms.xml.dso.XMLDSO.class”ID=“xmldso” WIDTH=0 HEIGHT=0MAYSCRIPT=TRUE><PARAM NAME=“URL”VALUE=“myXML.xml”></APPLET>上述例子中,CODE属性指明了DSO Java小程序,MAYSCRIPT属性保证用户端脚本能够处理数据对象,PARAM标签指明了XML文档的位置。
mybatis xml多个排序条件
在MyBatis 的XML 映射文件中,你可以在SQL 查询中使用ORDER BY 子句来指定多个排序条件。
以下是一个简单的示例,展示了如何在MyBatis 的XML 映射文件中使用多个排序条件:xml<select id="selectUsers" resultType="User">SELECT * FROM userORDER BY<if test="sortColumn == 'name'">name ${sortOrder}</if><if test="sortColumn == 'age'">age ${sortOrder}</if><if test="sortColumn == 'email'">email ${sortOrder}</if><if test="sortColumn == null or sortColumn == ''">name ASC</if></select>在这个示例中,我们有一个selectUsers 查询,它接受两个参数:sortColumn 和sortOrder。
sortColumn 用于指定要排序的列,而sortOrder 用于指定排序顺序(升序或降序)。
在ORDER BY 子句中,我们使用<if> 标签来检查sortColumn 的值,并相应地添加排序条件。
如果sortColumn 为null 或空字符串,则默认按name 列升序排序。
你可以根据实际需求修改此示例,以适应你的数据库表结构和排序要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<script language="JavaScript">
function sort(sortNode,sortOn)
{
var nodes = sortNode.selectNodes("学生");
for (var i = 0; i < nodes.length; i++)
break;
}}
}
}
</script>
(7)运行。直接双击该文件,会显示如图8-2所示窗口,单击【排序】按钮,会显示如图8-3所示窗口:
图8-2排序前数据显示8-3排序后数据显示
XML
将XML文件中的数据以一定顺序显示,可以使用样式表单文件XSL和数据岛技术。其中使用XML数据岛技术显示数据,需要在HTML网页中创建JavaScript代码。本练习目的熟悉XML数据岛的树结构(类似于DOM)。其实现步骤如下所示:
(1)分析程序
(2)实现XML文档,此文档继续使用练习1中的XML文档。
(3)创建HTML网页Example11.html。
(4)在Example11.html页面引入XML文件并绑定到具体元素上,其代码为:
<xml id="tab" src="Example11.xml"></xml>
<table datasrc="#tab" border="1" width="80%">
{
var node = nodes[i];
var rows = node.selectNodes("学生");
for (var n = 0; n < rows.length; n++)
sort(node, sortOn);
var tests = node.parentNode.selectNodes("学生");
<tr>
<td> <span datafld="姓名"></span></td>
<td> <span datafld="语文成绩"></span></td>
<td> <span datafld="数学成绩"></span></td>
</tr>
</table>
(5)创建表单按钮,其代码:
<button onclick="sort(tab.documentElement,'语文成绩')" >排序</button>
for (var nd = 0; nd < tests.length; nd++)
{
var test = tests[nd];
if (test.selectSingleNode(sortOn).text > node.selectSingleNode(sortOn).text)
{
test.parentNode.insertBefore(node,test);