分解XML
DECLARE @xmlvar xml
set @xmlvar = '
<Data>
<Student id="s1">
<Name>Bugs Bunny</Name>
<Class>FFA</Class>
</Student>
<Student id="s2">
<Name>Road Runner</Name>
<Class>Sports</Class>
</Student>
<Student id="s3">
<Name>Wile E. Coyote</Name>
<Class>Science</Class>
</Student>
<Student id="s4">
<Name>Foghorn Leghorn</Name>
<Class>Self Defense</Class>
</Student>
</Data>'
--1
SELECT
A.student.value('@id','varchar(10)') AS id,
A.student.value('Name[1]','varchar(20)') AS Name,
A.student.value('Class[1]','varchar(20)') AS Class,
row_number() over (order by getdate()) AS ndx
FROM @xmlvar.nodes('/Data/Student') AS A(student)
--2
SELECT
A.student.value('@id','varchar(10)') AS id,
A.student.value('Name[1]','varchar(20)') AS Name,
A.student.value('Class[1]','varchar(20)') AS Class,
A.student.value('for $i in . return count($i/../*[.<<$i])+1','int') AS ndx
FROM @xmlvar.nodes('/Data/Student') AS A(student)
--3
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlvar
SELECT * ,row_number() over (order by getdate()) AS ndx
FROM OPENXML(@docHandle, N'/Data/Student/Class')
WITH (id char(2) '../@id',name varchar(20) '../Name',class varchar(20) '../Class' )
EXEC sp_xml_removedocument @docHandle
--结果
/*
id Name Class ndx
---------- -------------------- -------------------- -----------
s1 Bugs Bunny FFA 1
s2 Road Runner Sports 2
s3 Wile E. Coyote Science 3
s4 Foghorn Leghorn Self Defense 4
(4 行受影响)
id Name Class ndx
------- -------------------- -------------------- --------------------
s1 Bugs Bunny FFA 1
s2 Road Runner Sports 2
s3 Wile E. Coyote Science 3
s4 Foghorn Leghorn Self Defense 4
(4 行受影响)
id name class ndx
---- -------------------- -------------------- --------------------
s1 Bugs Bunny FFA 1
s2 Road Runner Sports 2
s3 Wile E. Coyote Science 3
s4 Foghorn Leghorn Self Defense 4
(4 行受影响)
*/
分享到:
相关推荐
### 如何在SQL Server 2005中用XQuery分解XML数据 #### XQuery与SQL Server 2005的结合 XQuery作为一种强大的查询语言,被设计用于处理XML数据,它允许开发者精确地从XML文档中抽取所需的数据。随着SQL Server ...
4. **xml.nodes**: 对于需要将XML数据分解成关系数据的情况,`xml.nodes`非常有用。它接收一个XQuery表达式,返回一个包含XML变量中逻辑标量数据的行集。这样,每个节点可以映射到结果集的一行,便于在关系表中处理...
本章目标 1. 了解什么是xml? 1.1 什么是xml? 可扩展的标记语言。 ...1.2 为什么需要使用xml?...a) 可用用来做为软件系统的配置...(大型xml文件,建议:分解xml文件) 事件模型:Sax 特点:性能高、编码非常复杂。
2. XML对象模型:XML对象模型是对XML文档的一种抽象表示,它将XML文档分解为节点,如元素节点、文本节点、属性节点等。易语言中的XML对象提供了一系列方法,如`创建元素`、`添加子元素`、`获取属性值`等,用于操作...
1. **解析XML**:解析XML文件意味着将其内容分解成易于处理的元素。Python中的`ElementTree`库和Java的`DOM` API都是常用的解析工具。它们可以将XML文件转换为树形结构,便于遍历和操作。 2. **读取XML**:通过解析...
1. **节点明细**:工具将XML文档的元素结构分解为可读的节点层级,每个节点都清晰地标记出其类型(元素、属性、文本等)和内容,便于用户快速理解。 2. **搜索功能**:内置的搜索工具允许用户快速查找文档中的特定...
在【描述】中提到,XML数据在当前的生产系统中扮演着关键角色,但过去存储、查询和更新XML数据的方式往往复杂且效率低下,如将XML数据分解到关系表中。Oracle在Oracle9i数据库第2版中引入了Oracle XML DB特性,解决...
词法分析将输入的XML文档分解成一系列的标记(Tokens),如元素(Element)、属性(Attribute)、文本(Text)等。语法分析则根据这些标记构建XML文档的抽象语法树(AST)。 3. **事件驱动模型**:XML-Parser-2.4.4...
XML(eXtensible Markup...最后,PPT的形式通常会使得信息呈现更为直观,包括清晰的图表、步骤分解和总结,帮助学习者更好地理解和记忆XML的关键概念和实践技巧。结合课本一起学习,能形成更全面的理解,提升学习效果。
XML不是一种编程语言,而是一种元语言,规定了如何组织文档使之能有效分解为各个结构的规范。一个XML文档由元素(element)和属性(attributes)组成。元素由开始标签、结束标签和内容节点构成,开始标签由尖括号括...
1. **XML解析**:软件首先读取XML文件,使用解析器分解文件结构,理解元素和属性。 2. **数据映射**:解析后的数据需要映射到Excel的单元格中,这涉及到对XML结构的理解和转换规则的设定。 3. **样式和格式化**:...
它将XML文档分解为一个可操作的数据结构,这使得开发者能够有效地处理和分析数据。解析过程涉及词法分析和语法分析,确保XML文档遵循其语法规则。如果遇到错误,mini-XML会通过错误回调机制通知开发者。 创建和写入...
`value()`用于从XML文档中提取单个值,`nodes()`将XML文档分解为行集,`exist()`检查XML文档是否匹配某个XPath表达式。 接下来,我们将讨论如何在SQL Server中链接和操作XML文件: 1. **导入XML文件**:你可以使用...
Open XML是微软定义的一种开放标准文件格式,它将Office文档内容分解为多个XML文件,存储在一个ZIP容器中。这种格式使得开发者可以直接访问和操作文档的各个部分,包括文本、样式、图片、图表等。 **Open XML SDK...
对于“XML的字符解析和分解”,这可能指的是处理XML中的特殊字符和实体。XML定义了一些预定义实体,如`&`代表`&`,`<`代表`,`>`代表`>`,以及`"`和`'`分别代表`"`和`'`。在解析XML时,需要正确...
SOAPME尝试将XML元素和属性转换为更小的二进制表示,而SWBXML则使用一种高效的二进制编码方法,将XML文档分解为一系列的标识符,大大减少了数据量。这些编码技术可以显著降低SOAP消息的大小,提升网络通信性能。 3....
语法分析涉及将XML文档分解成解析树,而词法分析则是识别XML文档中的各个令牌,如标签、属性和文本。 2. **XML数据库引擎**:这部分可能是系统的核心,负责存储、索引和查询XML文档。它需要高效地处理大量的XML数据...
例如,我们可以通过`.value`方法提取特定节点的值,`.nodes`方法可以将XML文档分解为行集,`.query`则用于执行XPath查询,`.exists`检查是否存在某个节点。 ```sql DECLARE @xml XML = N'<root>...</root>'; -- ...
非原生XML数据库,如关系型数据库通过扩展支持XML,如Oracle的XML DB,将XML文档分解并存储在关系表中,然后提供API或SQL扩展来处理XML。 XML数据库设计的流程通常包括以下几个步骤: 1. **需求分析**:确定需要...
7.1.1 分解问题 7.1.2 重用 7.1.3 二义性与名称冲突 7.2 命名空间 7.3 定义和声明命名空间 7.3.1 声明一个命名空间 7.3.2 限定名 7.3.3 范围 7.4 在格式正规的书籍里使用命名空间 实例 7.5 模式 7.5.1 与...