如何为值生成xml标记

时间:2017-10-29 23:03:49

标签: sql-server xml

我希望以下列格式生成xml数据 - 动物值必须是标记名称

<pets>
  <dog>
    <name>spot</name>
  </dog>
  <cat>
    <name>tom</name>
  </cat>
</pets>

我可以写一些动态的SQL但是如果有更好的方法????

;with cte(animal,name)
as
(
    select 'dog','spot' union
    select 'cat','tom'
)
select 
    animal
    ,name
from cte
for xml path(animal),root('pets')

1 个答案:

答案 0 :(得分:1)

使用下一个代码: -

SELECT ( 
SELECT 'spot' AS name
FOR
XML PATH('dog'),
TYPE
),
( SELECT 'tom' AS name
FOR
XML PATH('cat'),
TYPE
)
FOR XML PATH(''),
ROOT('Pets')
GO

<强>结果: -

<Pets>
  <dog>
    <name>spot</name>
  </dog>
  <cat>
    <name>tom</name>
  </cat>
</Pets>