T-SQL XML получить значение из проблемы узла?

У меня есть 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 = / Я пробовал много комбинаций в @ myDoc.value, но без результатов = /

Как мне получить значение из моего XML?

Спасибо!

- ИЗМЕНИТЬ: То, что я заметил, когда я удаляю объявление пространства имен из XML, он работает нормально! Проблема в том, что мне нужны эти пространства имен! = /

6
задан renanleandrof 5 August 2011 в 20:39
поделиться