1

我有以下格式的 XML 文件,

 <?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 任务的屏幕截图如下,

在此处输入图像描述

在这个转换之后,我得到以下格式的 Xml 数据,

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

但是我仍然无法获得 Name 节点的单节点值,谁能解释上面到底发生了什么以及我应该做什么来获得准确的单节点值。由于,我被严重卡住了,任何形式的帮助都将不胜感激。

4

1 回答 1

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
于 2013-09-23T11:34:14.870 回答