如何在SQLServer2005中向xml节点添加属性

如何在SQLServer2005中向xml节点添加属性,sql,xml,sql-server-2005,Sql,Xml,Sql Server 2005,如果我想向根元素记录添加一个属性,我可以从sql端这样做吗 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> <

如果我想向根元素记录添加一个属性,我可以从sql端这样做吗

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>

文本

将新的
用于XML路径
语法:

SELECT TOP 1 
   'someValue' AS '@Attribute',
   'text' as 'z/NodeA'
FROM dbo.Test
WHERE....
FOR XML PATH('YourElement'), ROOT('Root')
这会产生类似

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

文本
请在此处阅读更多信息:


您的示例未按要求执行

请求:

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

文本
你的回答是:

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

文本
我正在执行类似的操作,并在保存文件之前使用PowerShell清理文件:

理由1:

理由二:这个

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

它应该创建一个根包含属性和列表的xml。。。内部。

你能展示一下你的表格是什么样子的吗?你希望你的XML是什么样子的吗?@mar_s嗨,marc,我添加了一个更新,更新了我的回复以满足你的要求。@marc_s woops,我忘了标记为答案,谢谢marc!似乎你忘记了链接的原因2。