的道歉,如果在其他地方回答了這個問題。我不斷收到錯誤消息 的XQuery [Mytable.XMLData.nodes()]:沒有名爲 '答案'如何讓SQL Server XQUERY返回除「沒有名爲[Element]的元素」
SELECT
ref.value('/','nvarchar(1000)')
FROM Mytable CROSS APPLY xmldata.nodes('Answer') R(ref)
元素 -
--XML of Row
<Answer xmlns="http://TempNameSpace.com/AnswerData.xsd" Type="Deliverable">
<Deliverable>
<Title>test</Title>
<Description>test</Description>
<DueDate>2010-02-16T08:59:59</DueDate>
</Deliverable>
</Answer>
我試過在得到幾個不同的變化根節點(「答案」),或任何孩子的節點 但如果我改變我的發言看
SELECT
ref.value('/','nvarchar(1000)')
FROM Mytable CROSS APPLY xmldata.nodes('/') R(ref)
我得到的結果 testtest2010-02-16T08:59:59
我想最終像這樣的數據以表格的形式,像
SELECT
ref.value('/Title','nvarchar(1000)') as Title
ref.value('/Description','nvarchar(1000)') as Description
etc..
FROM Mytable CROSS APPLY xmldata.nodes('/Deliverable') R(ref)
感謝您的幫助
可能是有趣的:http://stackoverflow.com/questions/1302064/sql-server-2005-xml-query-works-value-requires-singleton-found-xdtuntype – 2010-03-01 21:55:59
是的,這確實有所幫助。似乎當我刪除根節點上的命名空間聲明,我現在可以找到我的元素。然而,我的元素都沒有明確的命名空間前綴(例如,等於 ) 應該嗎?我想我可以從我的XML中刪除此xmlns =「http://TempNameSpace.com/AnswerData.xsd」行,但我打算使用它來驗證xml 謝謝 –
Beta033
2010-03-01 22:05:35
OOPS !!! @我自己:請注意(/)[1]部分。 這有助於 – Beta033 2010-03-01 22:08:12