阅读文章

由于工作的需要,要求打印网页。而且是网页中的指定内容。有点多次一举“可是这就是客户的需求!!~”(某高人语)。收集了两个比较合适的解决方法。

[日期:2006-08-16] 来源:  作者: [字体: ]

Transact-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集。此 XQuery 实现符合 2004 年 7 月的 XQuery 工作草案。该语言正在由 World Wide Web 联合会 (W3C) 开发,所有主要数据库供应商和 Microsoft 也参与此开发。由于 W3C 规范在成为 W3C 建议之前还可能进行修订,因此此实现可能与最终的建议有所不同。本主题概要介绍了 SQL Server 2005 中所支持的 XQuery 子集的语义和语法。

有关详细信息,请参阅 W3C XQuery 1.0 语言规范

XQuery 是一种可以查询结构化或半结构化 XML 数据的语言。由于 SQL Server 2005 Database Engine 中提供 XML 数据类型支持,因此可以将文档存储在数据库中,然后使用 XQuery 进行查询。

XQuery 基于现有的 XPath 查询语言,并支持更好的迭代、更好的排序结果以及构造必需的 XML 的功能。XQuery 在 XQuery 数据模型上运行。此模型是 XML 文档以及可能为类型化也可能为非类型化的 XQuery 结果的抽象概念。类型信息基于 W3C XML 架构语言所提供的类型。如果没有可用的类型化信息,XQuery 将按照非类型化处理数据。这与 XPath 1.0 版处理 XML 的方式相似。

若要查询 XML 类型的变量或列中存储的 XML 实例,可以使用 XML 数据类型方法。例如,可以声明一个 XML 类型的变量,然后使用 XML 数据类型的 query() 方法来查询此变量。

DECLARE @x XML
            SET @x = '<ROOT><a>111</a></ROOT>'
            SELECT @x.query('/ROOT/a')

在下面的示例中,查询是针对 AdventureWorks 数据库中 ProductModel 表的 XML 类型的 Instructions 列指定的。

SELECT Instructions.query('declare namespace AWMI="http://schemas.microsoft.com
/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"; /AWMI:root/AWMI:Location[@LocationID=10] ') as Result FROM Production.ProductModel WHERE ProductModelID=7

XQuery 包含命名空间声明(declare namespace AWMI=...)和查询表达式(/AWMI:root/AWMI:Location[@LocationID=10])。

请注意,XQuery 是针对 XML 类型的 Instructions 列指定的。XML 数据类型的 query() 方法(XML 数据类型)用于指定 XQuery。



阅读:
录入:blue1000

评论 】 【 推荐 】 【 打印
上一篇:解决 SQL Server 耗尽内存的情况
下一篇:已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行.
相关文章      
本文评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款