我想读取由存储过程调用的WCF服务返回的xml中的值。下面的代码返回null:
declare @xmlValue varchar(1000)
declare @responseString varchar(100)
declare @idoc int
set @xmlValue = '<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">220</string>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @xmlValue
SELECT *
FROM OPENXML (@idoc, '/*',3)
WITH (string varchar(100))
EXEC sp_xml_removedocument @idoc
答案 0 :(得分:1)
当然 - XML有一个你忽略的 XML命名空间 - 你需要注意它!
我还建议在SQL Server中使用本机XQuery支持。
试试这个:
DECLARE @xmlvalue XML
SET @xmlValue = '<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">220</string>'
-- define the XML namespace
;WITH XMLNAMESPACES('http://schemas.microsoft.com/2003/10/Serialization/' AS ns)
SELECT
@xmlValue.value('(ns:string)[1]', 'int') -- and **use** the XML namespace!