原创:通过SQL语句直接把表导出为XML格式

有时候我们需要把从数据库里读出的数据直接保存为XML的形式,这里我们通过SQL语句就可以达到这种效果。

首先建立一张表:

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
USE [ ip ]
GO
/* ***** 对象: Table [dbo].[SiteData] 脚本日期: 09/11/2010 17:41:11 ***** */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [ dbo ] . [ SiteData ] (
[ id ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ SiteName ] [ varchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ SiteAdd ] [ varchar ] ( 100 ) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ BaiduSort ] [ int ] NOT NULL CONSTRAINT [ DF_SiteData_BaiduSort ] DEFAULT (( 0 )),
[ BaiduShouLu ] [ int ] NOT NULL CONSTRAINT [ DF_SiteData_BaiduShouLu ] DEFAULT (( 0 )),
CONSTRAINT [ PK_SiteData ] PRIMARY KEY CLUSTERED
(
[ id ] ASC
)
WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [ PRIMARY ]
)
ON [ PRIMARY ]

GO
SET ANSI_PADDING OFF

表中数据如下:

 表中数据

表中字段分别为:编号、网站名称、网站地址、百度排名、百度收录。

现在我们就把这张表直接导出为XML格式,SQL语句如下:

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
SELECT
1 AS Tag,
NULL AS Parent,
SiteName
AS [ site!1!网站名称 ] ,
SiteAdd
AS [ site!1!网站地址 ] ,
BaiduSort
AS [ site!1!百度排名 ] ,
BaiduShouLu
AS [ site!1!百度收录 ]
FROM SiteData order by BaiduShouLu FOR XML EXPLICIT

运行这条语句之后,我们在SQL Server2005的运行结果里可以看到如下内容:

导出结果

我们可以看到,这个XML的节点的内容我们是可以在SQL与距离进行自定义的,这个时候只要我们点击一下这个输出结果,就能导出XML格式的一段代码了。

我们将会得到:

 
  
< site 网站名称 = "博客园" 网站地址 = "http: // www.cnblogs.com / " 百度排名 = " 20 " 百度收录 = " 6020000 " />

我们现在得到的这个XML代码是不包含XML的表头以及编码格式的,如果我们想做的更傻瓜化一些可以直接在后台自定义添加以下内容:

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
// content 是我们读取数据库后得到的string字符串
content = content.Replace( " &lt; " , " < " ).Replace( " &quot; " , " \ "" ).Replace( " & gt; " , " > " );
// 自定义XML编码格式和父节点名称
content = " <?xml version=\ " 1.0 \ " encoding=\ " utf - 8 \ " ?><start> " + content + " </start>
// 输出XML到本地路径using
(StreamWriter sw = new StreamWriter( @" E:\SoftUpdate\sql2xml.xml " )) { sw.Write(content); }

这样的话我们就能直接通过页面上的一个触发事件将数据库中的数据导出并保存为XML格式了。

转载于:https://www.cnblogs.com/NicholasLee/archive/2010/09/11/1824051.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值