网站大量收购闲置独家精品文档,联系QQ:2885784924

上海交通大学高级数据库课件陆朝俊ed6ch23讲述.ppt

上海交通大学高级数据库课件陆朝俊ed6ch23讲述.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上海交通大学高级数据库课件陆朝俊ed6ch23讲述

查询与转换 XML应用的越来越多, 需要有效管理XML数据的工具 从大量XML数据中查询信息 在不同XML模式间转换数据 上述两种情况是紧密相关的, 可用同样的工具处理 标准XML查询/转换语言 XPath 由路径表达式组成的简单语言 是下面两种语言的构件 XQuery 标准XML查询语言 XSLT XSL的一部分 用于文档格式化,而非数据管理应用 XML数据的树模型 上述三种查询与转换语言都基于XML数据的树模型 一个XML文档建模成一棵树, 结点对应于元素和属性 元素结点可有子结点: 表示元素的属性或子元素 结点(除了根结点)具有单一父结点, 该父结点是一个元素结点 一个结点的子结点按照他们在XML文档中的次序排列 元素的文本内容建模成该元素的文本子结点 若文本内容被子元素分隔, 则一个元素可有多个文本子结点 如this is a bold wonderful /bold book 表示为三个子结点 XPath XML Path Language (XPath) 2.0 (Second Edition) W3C Recommendation 14 December 2010 (Link errors corrected 3 January 2011) XPath 利用路径表达式来选择文档的部件 路径表达式是用“/”分隔开的一个定位步骤序列 考虑在目录层次中的文件名 路径表达式的结果: 能匹配指定路径的节点集合 例: /bank-2/customer/customer_name 在 bank-2 data 上求值可返回 customer_nameJoe/customer_name customer_nameMary/customer_name 例: /bank-2/customer/customer_name/text( )返回客户名, 但不含外围标签 XPath (续) 起始 “/” 表示文档的根(在文档顶级标签之上的抽象根节点) 路径表达式从左至右求值 路径上任何一点的结果都是一个有序节点集合 每一步都对前一步产生的“当前”元素集合进行操作 最后一步产生的元素集合就是路径表达式的值 利用 “@”访问属性值 例: /bank-2/account/@account_number 返回account元素的account_number属性的值 IDREF属性不能自动 dereferenced (稍后详述) 选择谓词可以跟在路径中的任何一步后面, 放在[ ]中 /bank-2/account[balance 400] 返回balance值大于400的account 元素 测试子元素存在性: /bank-2/account[balance] 返回包含balance子元素的account 元素 XPath中的函数 XPath 提供若干函数 聚合函数count(exp) 计算与exp匹配的结点个数 例: /bank-2/account[count(./customer) 2] 返回多于2 个客户的帐户 测试当前结点在兄弟序中的位置 (1, 2, ..)的函数position() 布尔连接词and 和or 以及函数not()可用于谓词中 函数id(foo)返回具有ID类型属性并且值为foo的结点(如果有的话) id() 还可作用于引用集合上, 甚至作用于包含多个用空格分隔的引用的串上. 如IDREFS 例如 /bank-2/account/id(@owners) 返回所有被account元素的owners属性引用的客户 XPath 的更多特色 运算符 “|” 用来实现并集 例: /bank-2/account/id(@owner) | /bank-2/loan/id(@borrower) 返回有帐户或贷款的客户 但是, “|” 不能嵌套在其他运算符内. “//” 可用于跳过多层结点 例如 /bank-2//customer_name 在/bank-2 元素下的任何地方找出所有customer_name 元素, 不管它被包含在哪个元素当中. 无需了解完整模式也可查询数据 路径中的一步可以到达前一步生成的结点的父亲, 兄弟, 祖先及后裔, 而不仅仅到达子结点 “//”, 如上述, 是指明“所有后裔”的一种缩写形式 “..” 指明父结点 函数doc(name) 返回命名文档的根 name可以是 文件名或URL 例: doc(“bank.xml”)/bank/account collection(name)类似doc() XQuery XQuery 1.0: An XML Query Language (Second Edition) W3C Recommendation 14 December 2010 (Link er

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档