2013-09-23 40 views
1

我有以下格式的XML文件,切碎XML的SQL Server中

<?xml version="1.0" encoding="utf-16"?> 
    <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Name xmlns="http://localhost">Reshma</Name> 
    <BirthDate xmlns="http://localhost">1988-09-23T00:00:00</BirthDate> 
    </Data> 

當我使用XML的任務是拿到單節點值,名稱,XML任務的截屏如下: ,

enter image description here

這種轉變後,我得到的XML數據的格式如下,

<?xml version="1.0" encoding="utf-8"?><Data><Name>Rahul</Name><BirthDate>1988-09-23T00:00:00</BirthDate></Data> 

但是我仍然無法獲得名稱節點的單節點值, 任何人都可以解釋上面發生了什麼,以及我想要做什麼來獲得單節點值。 因爲,我很困難,任何形式的幫助將不勝感激。

回答

0

請嘗試下面的SQL。

DECLARE @x xml ; 

SELECT @x = REPLACE(REPLACE(BulkColumn,CHAR(10),''),CHAR(13),'') 
FROM OPENROWSET(BULK 'E:\SQL_Queries\test.xml', SINGLE_NCLOB) AS X 

SELECT 
T.c.value('.','nvarchar(50)') AS result 
FROM @x.nodes('//*[local-name()="Data"]/*[local-name() = "Name"]') T(c); 
GO 
+0

@Reshma:更新了答案。請看看 –

+0

Aggrawal ...這是基本的問題,實際上我無法刪除該根xml節點,但無論如何非常感謝這個解決方案,我會試試這個。 – Reshma

+0

@Reshma:已經更新了答案。現在你不需要刪除root xml節點。 –