程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 通過SQL語句直接把表導出為XML格式

通過SQL語句直接把表導出為XML格式

編輯:更多數據庫知識

首先建立一張表:

復制代碼 代碼如下:
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語句如下:
復制代碼 代碼如下:
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.jb51.net/" 百度排名="20" 百度收錄="6020000" />

我們現在得到的這個XML代碼是不包含XML的表頭以及編碼格式的,如果我們想做的更傻瓜化一些可以直接在後台自定義添加以下內容:
復制代碼 代碼如下:
//content 是我們讀取數據庫後得到的string字符串
content = content.Replace("<", "<").Replace(""", "\"").Replace(">", ">");
//自定義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); }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved