Sql Server XML
实验数据:
Create table xmldata (name NVARCHAR(20),age int,sex NVARCHAR(5) )INSERT INTO xmldata VALUES (N'张三',12,N'男'), (N'李四',12,N'女'), (N'王五',12,N'男')SELECT * FROM xmldata表数据转换XML
FOR XML PATH --把表数据转换成XML数据--将数据存入属性中 SELECT name AS '@c1',age AS '@c2',sex AS '@c3' FROM xmldata FOR XML PATH('XMLRow') , root('XMLData') --PATH('XMLRow')定义行标签名称 , root('XMData')定义根标签名称,定义属性名称要加单引号和@
--将数据存入节点中 SELECT name AS c1,age AS c2,sex AS c3 FROM xmldata FOR XML PATH('XMLRow') , ROOT('XMLData') --字段别称定义数据节点的名称
解析XML数据
1、xml: 能认识元素、属性和值
2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)
语法格式,这些语法可以组合为条件:
"."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,
"name"表示按名字查找,"@name"表示按属性查找
"集合[条件]" 表示根据条件取集合的子集,条件可以是
数 值:数字,last(),last()-数字 等
布尔值:position()<数字,@name='条件',name='条件'
条件是布尔值的时候可以合并计算:and or
3、xquery: 基于xpath标的准查询语言,sqlserver xquery包含如下函数
exist(xpath条件):返回布尔值表示节点是否存在
query(xpath条件):返回由符合条件的节点组成的新的xml文档
value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一
nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表
declare @data xml set @data=' <bookstore> <book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price> </book> <book category="CHILDREN"><title lang="jp">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price> </book> <book category="WEB"><title lang="en">XQuery Kick Start</title><author>James McGovern</author><author>Per Bothner</author><author>Kurt Cagle</author><author>James Linn</author><author>Vaidyanathan Nagarajan</author><year>2003</year><price>49.99</price> </book> <book category="WEB"><title lang="cn">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price> </book> </bookstore> 'SELECT T.C.value('@category','varchar(max)') as category, T.C.value('title[1]','varchar(max)') as title, T.C.value('title[1]/@lang','varchar(max)') as lang, T.C.value('author[1]','varchar(max)') as author, T.C.value('author[2]','varchar(max)') as author1 FROM @data.nodes('/bookstore/book') as T(C)
转载于:https://www.cnblogs.com/JinweiChang/p/10461785.html
总结
以上是生活随笔为你收集整理的Sql Server XML的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 腾讯地图和百度地图的PHP相互转换
- 下一篇: Asp.Net Core 之 appse