DB2 9 根蒂根基(730 测验)认证指南,第 7 部分: XQuery 简介(6)
2011-03-07 00:08
309 查看
![](https://www6.software.ibm.com/developerworks/cn/i/dw.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201103/db6c26e26e5c82a0b8bb4065f252f3a3.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201103/db6c26e26e5c82a0b8bb4065f252f3a3.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201103/db6c26e26e5c82a0b8bb4065f252f3a3.gif)
XML 数据转换
XQuery 的一个强年夜功用是能够将 XML 数据从一种情势的 XML 转换为另一种。在本节中,您将体味举办 XML 数据转换是多么方便。
将 XML 转换为 HTML
在基于 Web 的运用步伐中,常常须要将扫数或部分 XML 文档转换为 HTML 以便举办体现。操作 XQuery 很方便完成这个进程。请考虑以下查问,它检索客户的地点、按邮政编码对功用举办排序并将输入转换为 XML 元素,这些元素是一个无序 HTML 列表的构成部分:
清单 29. 查问 DB2 XML 数据并前去 HTML 情势的功用
xquery <ul> { for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/Address order by $y/zip return <li>{$y}</li> } </ul>
这个查问以
xquery枢纽字收尾,从而向 DB2 分析器走漏示意 XQuery 用作重要语言。第二哄骗无序列表的 HTML 符号(<ul>)呈现在功用中。它还引入一个花括号,这是这个盘录取运用的两对花括号中的第一对。花括号让 DB2 策画并处置此中搜罗的表达式,而不是将它作为字符串对待。
第三行遍历客户的地点,按序将变量 $y 绑定到每个 Address 元素。第四行搜罗一个
order by子句,它指定功用必须根据客户的邮政编码(即绑定到 $y 的每个 Address 的 zip 子元素)举办升序排序(这是默许顺序)。
return子句走漏示意将 Address 元素困绕在 HTML 列表项符号中,然后再前去。最月朔行完毕查问并完成 HTML 无序列表符号。
这个查问的部分输入如下:
清单 30. 前一个查问的 HTML 输入
<ul> <li> <Address> <street>9407 Los Gatos Blvd.</street> <city>Los Gatos</city> <state>CA</state> <zip>95032</zip> </Address> </li> <li> <Address> <street>4209 El Camino Real</street> <city>Mountain View</city> <state>CA</state> <zip>95033</zip> </Address> </li> . . . </ul>
运用转换走漏示意 XML 文档中缺失的或反复的元素
我们来考虑前面提出的一个主题:如何编写 XQuery 在前去的功用中走漏示意缺失的值,以及走漏示意一个 XML 文档(例如一个客户记载)搜罗反复的元素(例如多个电子邮件地点)。一种方法触及到将前去的输入包装在一个新的 XML 元素中,如以下查问所示:
清单 31. 在 XQuery 功用中走漏示意缺失的值或反复的元素
xquery for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client where $y/Address[zip="95032"] or $y/Address[city="San Jose"] return <emailList> {$y/email} </emailList>
运转这个查问会前去一系列 emailList 元素,每个符合前提的客户记载都有一个 emailList 元素。每个 emailList 元素将搜罗电子邮件数据。如果 DB2 在一个客户的记载中只找到一个电子邮件地点,那么它会前去这个元素及其值。如果找到多个电子邮件地点,就会前去扫数 email 元素及其值。最后,如果没有找到电子邮件地点,就会前去一个空的 emailList 元素。
关于我们的示例数据,这个查问的输入是:
清单 32. 前一个查问的输入
<emailList> <email>love2shop@yahoo.com</email> </emailList> <emailList/> <emailList/> <emailList> <email>beatlesfan36@hotmail.com</email> <email>lennonfan36@hotmail.com<emailList> </emailList>
版权声明:
原创作品,容许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。不然将追查功令责任。
相关文章推荐
- DB2 9 根蒂根基(730 考试)认证指南,第 7 部分: XQuery 简介(7)
- DB2 9 根基(730 测验)认证指南,第 7 部分: XQuery 简介(1)
- DB2 9 基础(730 测验)认证指南,第 7 局部: XQuery 简介(5)
- DB2 9 底子根基(730 考验)认证指南,第 7 部门: XQuery 简介(4)
- DB2 9 底子(730 磨练)认证指南,第 7 部分: XQuery 简介(3)
- DB2 9 根底内情根基(730 测验)认证指南,第 5 部分: 措置 DB2 工具(5)
- DB2 9 底子基本(730 测验)认证指南,第 7 局部: XQuery 简介(8)
- DB2 9 基础(730 检验)认证指南,第 7 局部: XQuery 简介(2)
- DB2 9 基础根基(730 测验)认证指南,第 2 部门: 安适性(1)
- DB2 9 根蒂根基(730 检修)认证指南,第 4 部门: 处理惩罚 DB2 数据(3)
- DB2 9 根柢内幕底子(730 测验)认证指南,第 4 部分: 措置责罚 DB2 数据(2)
- DB2 9 根蒂根底(730 测验)认证指南,第 1 部分: DB2 计划(2)
- DB2 9 根基内情(730 测验)认证指南,第 5 局部: 处理处罚 DB2 工具(6)
- DB2 9 哄骗开发(733 测验)认证指南,第 9 部分: 用户定义的例程(1)
- DB2 9 运用开辟(733 测验)认证指南,第 2 部分: DB2 数据操作(5)
- DB2 9 根底(730 考试)认证指南,第 5 部分: 处置 DB2 器材(1)
- DB2 9 操作开发(733 测验)认证指南,第 8 部分: 初级编程(5)
- DB2 9 运用开发(733 测验)认证指南,第 3 部分: XML 数据操作(11)
- DB2 9 利用启迪(733 测验)认证指南,第 8 部分: 初级编程(4)
- DB2 9 根底(730 检验)认证指南,第 4 部分: 措置奖励 DB2 数据(5)