利用OpenXML获取XML文件中的数据.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用OpenXML获取XML文件中的数据

利用OpenXML获取XML文件中的数据 一、OPENXML(选至SQL SERVER联机丛书) OPENXML 通过 XML 文档提供行集视图。由于OPENXML 是行集提供程序,因此可在会出现行集提供程序(如表、视图或 OPENROWSET 函数)的 Transact-SQL 语句中使用 OPENXML。 语法 OPENXML(idoc int [in],rowpattern nvarchar[in],[flags byte[in]]) [WITH (SchemaDeclaration | TableName)] 参数 idoc 是 XML 文档的内部表式法的文档句柄。通过调用 sp_xml_preparedocument 创建 XML 文档的内部表式法。 rowpattern 是 XPath 模式,用来标识要作为行处理的节点(这些节点在 XML 文档中,该文档的句柄由 idoc 参数传递)。 flags 表示应在 XML 数据和关系行集间使用映射以及应如何填充溢出列。flag 为可选输入参数,可以是下列值之一。 字节值 描述 0 默认为以特性为中心的映射。 1 使用以特性为中心的映射。 在某些情况下,可以将它与 XML_ELEMENTS 组合使用。使用时首先应用以特性为中心的映射,然后对于所有仍未处理的列应用以元素为中心的映射。 2 使用以元素为中心的映射。 在某些情况下,可以将它与 XML_ATTRIBUTES 组合使用。使用时先应用以特性为中心的映射,然后对于所有仍未处理的列应用以元素为中心的映射。 8 可与 XML_ATTRIBUTES 或 XML_ELEMENTS 组合使用(逻辑 OR)。 在检索的上下文中,该标志指明不应将已消耗的数据复制到溢出属性 @mp:xmltext。 SchemaDeclaration 是窗体的架构定义: ColName ColType [ColPattern | MetaProperty][, ColName ColType [ColPattern | MetaProperty]...] ColName 是行集中的列名。 ColType 是行集中列的 SQL 数据类型。如果列类型不同于特性的基础 XML 数据类型,那么将发生类型压制。如果列的类型是 TIMESTAMP,则当从 OPENXML 行集中进行选择时,将忽略 XML 文档中现有的值并返回自动填充值。 ColPattern 是可选的通用 XPath 模式,它说明应如何将 XML 节点映射到列。如果没有指定 ColPattern,那么发生默认的映射(由 flags 指定的以特性为中心或以元素为中心的映射)。 指定为 ColPattern 的 XPath 模式用于指定特殊的映射性质(如果发生以特性为中心和以元素为中心的映射),这些特殊的映射性质可以重写或增强由标志所指定的默认映射。 指定为 ColPattern 的通用 XPath 模式也支持元属性。 MetaProperty 是由 OPENXML 提供的元属性之一。如果指定元属性,则该列包含元属性提供的信息。这些元属性使您得以析取 XML 节点的信息(如相对位置、命名空间信息),以提供比文本化表示法更详细的信息。 TableName 如果具有期望架构的表已经存在且不要求列模式,则为给定的表名(而不是 SchemaDeclaration)。 通过使用 SchemaDeclaration 或者指定一个现有的 TableName,WITH 子句提供一种行集格式(根据需要还提供其它映射信息)。如果没有指定可选的 WITH 子句,那么以 edge table 格式返回结果。边缘表在单个表中表示 XML 文档的细密结构(例如,元素/特性名、文档层次结构、命名空间、PI 等)。 下表描述边缘表的结构。 列名 数据类型 描述 id bigint 是文档节点的唯一 ID。 根元素的 ID 值为 0。保留负 ID 值。 parentid bigint 标识节点的父节点。此 ID 所标识的父节点不一定是父元素,而是取决于此 ID 所标识节点的子节点的 NodeType。例如,如果节点是文本节点,则其父节点可能是特性节点。 如果节点位于 XML 文档的顶层,则其 ParentID 为 NULL。 nodetype int 标识节点类型。是对应于 XML DOM 节点类型编号的整数(有关节点信息,请参见 DOM)。 三种节点类型是: 1 = 元素节点 2 = 特性节点 3 = 文本节点 localname nvarchar 给出元素或特性的本地名称。如果 DOM 对象没有名称则为 NULL。 prefix nvarchar 是节点名称的命名空间前缀。 namespaceuri n

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档