SQL Server数据库中XML支持及查询返回XML

资讯 驱动中国 fen 1,297 次阅读 0 条评论
分享 Q

使 SQL Server 查询结果转化成 XML 字符串

1 在 SQL 语句后使用 for xml 子句。

[ FOR { XML { RAW | AUTO }

[ , XMLDATA ]

[ , ELEMENTS ]

[ , BINARY BASE64 ] } ]

将得到一个无根节点的XML片断。

1.1 for xml raw

结果为 ...

1.2 for xml auto

结果为 ...

1.3 for xml raw,xmldata

结果为

1.3.1 for xml auto,xmldata

内为

1.4 elements使列作为子元素返回,binary base64采用base64编码表示二进制数据。

使用 HTTP 访问 SQL Server 并返回XML数据

1 安装 IIS5.1 和 SQL Server 2000 以上版本。

2 使用SQL Server 的 '在 IIS 中配置SQL XML 支持' 工具创建一个虚拟目录。

2.1 在 '常规' 选项卡 输入 虚拟目录 名称,例如 Test。

2.2 在 '安全性' 输入账号密码等等身份验证信息。

2.3 '数据源' 可以选择要连接的数据库。

2.4 '设置'选项卡里面有些细则,默认只有一个允许模板。

2.4.1 如果想用url?sql=sqlString 或者 url?sql=sqlString,则选择好 '允许sql 1000 =或...的URL查询'。

2.4.2 XPATH允许在URL后使用xpath表达式过滤得到的数据,POST允许通过表达提交查询。

2.5 在URL中指定数据库和表的名称。

2.5.1 在'虚拟名称'中创建相应的虚拟名称,如'http://localhos/database/table/...'。

3 使用 SQL XML 进行查询。

3.1 使用 GET 提交,在 URL 后附加 SQL 语句:

[url]http://localhos/test?sql=select+[/url]*+from+table+for+xml+auto&root=root

root=root可以指定根节点,否则会得到一个没有根节点的xml片断。

3.2 使用 XML模板 进行查询。

3.2.1 直接在 URL 中指定模板。

[url]http://localhos/test?template=[/url]select+*+from+table+for+xml+auto

URL 中附加模板存在安全和长度限制,可以使用模板文件。

3.2.2 使用模板文件,例:

建立一个文本文件tmp.xml

select * from table for xml auto

存放在虚拟目录test内。

使用URL 'http://localhos/test/tmp.xml' 便可以得到结果。

3.2.2.1 使用XPATH

[url]http://localhos/test/tmp.xml/col[/url][@att="1"]

'...tmp.xml/'后即可以接xpath表达式进行筛选,语法和普通xml中一样。

(责任编辑:董建伟)

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友