2013-08-07 83 views
0

如何編寫xpath查詢以返回爲具有字符串數組的對象?似乎無法獲得價值或字符串的工作。SQL Server XPath查詢以提取ArrayOfString

<Info> 
    <EmailAddresses> 
    <string>email1</string> 
    <string>email2</string> 
    <string>email3</string> 
    </EmailAddresses> 
</Info> 

SELECT Table.[Object].value('(//Info/EmailAddresses)[1]','nvarchar(max)') As 'EmailAddresses' from Table where ... 

導致無法隱式霧化或應用「FN:數據()」到複雜的內容元素,找到類型推斷的類型中「ArrayOfString「元素(

SELECT Table.[Object].query('(/Info/EmailAddresses)[1]') As 'EmailAddresses' from Table where ... 

將返回整個

<EmailAddresses> 
    <string>email1</string> 
    <string>email2</string> 
    <string>email3</string> 
    </EmailAddresses> 

這使得它在奇代碼解析,因爲它必須被轉移到對象,而不是字符串的列表在C#

+0

*** SQL ***只是*結構化查詢語言* - 許多數據庫系統使用的語言,但不是數據庫產品......很多東西都是特定於供應商的 - 所以我們確實需要知道**數據庫系統**(和哪個版本)你正在使用(請相應地更新標籤).... –

回答

0

這個例子中查詢您的XML

declare @x xml 
set @x = 
'<Info> 
    <EmailAddresses> 
    <string>email1</string> 
    <string>email2</string> 
    <string>email3</string> 
    </EmailAddresses> 
</Info>' 

SELECT r.nref.value('.','nvarchar(max)') As 'EmailAddresses' 
from @x.nodes('/Info/EmailAddresses/*') r(nref) 

返回郵件列表,那麼您可以在此ResultSet中使用C#想要的任何方式解析字符串 - 把它們串什麼的陣列...