我有一個XML這樣的:T-SQL XML從節點問題中獲取值?
<?xml version="1.0" encoding="utf-16"?>
<ExportProjectDetailsMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Project">
<CPProjectId>7665699f-6772-424c-8b7b-405b9220a8e7</CPProjectId>
</ExportProjectDetailsMessage>
我試圖使用獲得CPProjectId作爲唯一標識符:
DECLARE @myDoc xml
DECLARE @ProdID varchar(max)
SET @myDoc = '<ExportProjectDetailsMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Project"><CPProjectId>7665699f-6772-424c-8b7b-405b9220a8e7</CPProjectId></ExportProjectDetailsMessage>'
SET @ProdID = @myDoc.value('(ExportProjectDetailsMessage/CPProjectId)[1]', 'varchar(max)')
SELECT @ProdID
所有我能夠接收到NULL =/ 我試過很多的組合on @ myDoc.value但沒有結果=/
如何從我的XML中檢索值?
謝謝!
- EDIT: 我注意到,當我從XML中刪除名稱空間聲明它工作正常! 問題是我需要這個命名空間! =/
請參閱:http://stackoverflow.com/questions/4081906/sql-server-xml-namespace-querying-problem技巧是「WITH NAMESPACES」,然後使用「ns:」形成。 – 2011-08-05 20:46:37