通過SQL語句直接把表導(dǎo)出為XML格式

有時(shí)候我們需要把從數(shù)據(jù)庫里讀出的數(shù)據(jù)直接保存為XML的形式,這里我們通過sql語句就可以達(dá)到這種效果。

首先建立一張表:

代碼如下:
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

表中數(shù)據(jù)如下:

表中字段分別為:編號、網(wǎng)站名稱、網(wǎng)站地址、百度排名、百度收錄。

現(xiàn)在我們就把這張表直接導(dǎo)出為XML格式,SQL語句如下:
代碼如下:
SELECT
1 AS Tag,
NULL AS Parent,
SiteName AS [site!1!網(wǎng)站名稱],
SiteAdd AS [site!1!網(wǎng)站地址],
BaiduSort AS [site!1!百度排名],
BaiduShouLu AS [site!1!百度收錄]
FROM SiteData order by BaiduShouLu FOR XML EXPLICIT

運(yùn)行這條語句之后,我們在SQL Server2005的運(yùn)行結(jié)果里可以看到如下內(nèi)容:

我們可以看到,這個(gè)XML的節(jié)點(diǎn)的內(nèi)容我們是可以在SQL與距離進(jìn)行自定義的,這個(gè)時(shí)候只要我們點(diǎn)擊一下這個(gè)輸出結(jié)果,就能導(dǎo)出XML格式的一段代碼了。

我們將會(huì)得到:
代碼如下:

我們現(xiàn)在得到的這個(gè)XML代碼是不包含XML的表頭以及編碼格式的,如果我們想做的更傻瓜化一些可以直接在后臺(tái)自定義添加以下內(nèi)容:
代碼如下:
//content 是我們讀取數(shù)據(jù)庫后得到的string字符串
content = content.Replace(“”, “>”);
//自定義XML編碼格式和父節(jié)點(diǎn)名稱
content = “” + content + “
//輸出XML到本地路徑using
(StreamWriter sw = new StreamWriter(@”E:SoftUpdatesql2xml.xml”)) { sw.Write(content); }

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享