2011-12-07 119 views
4

如果我想添加一個屬性到根元素記錄,我可以從SQL端做到這一點?如何將屬性添加到SQL Server 2005中的XML節點

SELECT top 1 'text' as nodeA 
       from test as z 
FOR XML AUTO, ELEMENTS, root('record') 

我想產生這樣的XML:

<Root attribute="value"> 
    <z> 
     <NodeA>text</NodeA> 
    </z> 
</Root> 
+0

你可以顯示你的表的樣子,以及你想要你的XML看起來像什麼? –

+0

@mar_s hi marc,我添加了一個更新 –

+0

更新我的迴應,以滿足您的要求.... –

回答

1

您的例子並不做要求什麼。

要求:

<Root attribute="someValue"> 
    <YourElement> 
     <z> 
     <NodeA>text</NodeA> 
     </z> 
    </YourElement> 
</Root> 

你的答案:

<Root> 
    <YourElement Attribute="someValue"> 
     <z> 
     <NodeA>text</NodeA> 
     </z> 
    </YourElement> 
</Root> 

我在做類似的東西,並使用PowerShell的保存前擦洗文件:

擦洗原因1:https://connect.microsoft.com/SQLServer/feedback/details/265956/suppress-namespace-attributes-in-nested-select-for-xml-statements

磨砂原因2:這個

+1

看來你忘記了* scrub reason 2 *的鏈接。 – j0k

0
SELECT 
     'someValue' AS '@Attribute', 
     (SELECT TOP 1 
       'text' as 'z/NodeA' 
       FROM dbo.Test 
       WHERE.... 
       FOR XML PATH('YourElement') 
     ) 
FOR XML PATH('ROOT'); 

它應該創建一個xml與ROOT containg屬性和列表...裏面。

相關問題