如果我想在根元素记录中添加属性,可以从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>
答案 0 :(得分:8)
使用新的FOR XML PATH
语法:
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>
在这里阅读更多相关信息:
答案 1 :(得分:1)
您的示例没有按要求执行操作。
请求:
<Root attribute="someValue">
<YourElement>
<z>
<NodeA>text</NodeA>
</z>
</YourElement>
</Root>
你的回答:
<Root>
<YourElement Attribute="someValue">
<z>
<NodeA>text</NodeA>
</z>
</YourElement>
</Root>
我正在做类似的事情,并在保存之前使用PowerShell擦除文件:
擦洗原因2:这个
答案 2 :(得分:0)
SELECT
'someValue' AS '@Attribute',
(SELECT TOP 1
'text' as 'z/NodeA'
FROM dbo.Test
WHERE....
FOR XML PATH('YourElement')
)
FOR XML PATH('ROOT');
它应该创建一个带有ROOT的属性和内部列表的xml。