欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

Sql Server XML

发布时间:2025/4/16 asp.net 80 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。