首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要以以下格式从SQL生成XML

我需要以以下格式从SQL生成XML
EN

Stack Overflow用户
提问于 2012-07-06 18:52:37
回答 2查看 75关注 0票数 2

我在SQL server数据库中有一个表,我正在使用以下查询从该表生成一个XML。

代码语言:javascript
复制
SELECT OrderNumber, CustomerID, ITEM
FROM OrderHeader
FOR XML RAW('Order'), ELEMENTS, ROOT('Orders')

我得到一个这样的XML:

代码语言:javascript
复制
<Orders>
<Order>
    <OrderNumber>SO101</OrderNumber>
    <CustomerID>1</CustomerID>
            <Item>item 1</Item>
</Order>
<Order>
    <OrderNumber>SO102</OrderNumber>
    <CustomerID>1</CustomerID>
            <Item>item 2</Item>
</Order>
</Orders>

但是我需要生成以下格式的XML。

代码语言:javascript
复制
<Orders>
<Order OrderNumber= 'SO101'>        
    <CustomerID>1</CustomerID>
            <Item>item 1</Item>
</Order>
  <Order OrderNumber= 'SO102'>      
    <CustomerID>1</CustomerID>
            <Item>item 2</Item>
</Order>
</Orders>

即Order number列需要显示为Order节点的属性。

我如何才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-06 19:12:42

我想您会发现XML RAW会限制您的选择。

尝试使用XML路径,如下所示:

代码语言:javascript
复制
SELECT OrderNumber AS @Id, CustomerID, ITEM
FROM OrderHeader
FOR XML PATH('Order'), ELEMENTS, ROOT('Orders')

我想看看这样做是否奏效,现在也试着改进我的XML。

票数 2
EN

Stack Overflow用户

发布于 2012-07-06 19:12:33

尝尝这个,

代码语言:javascript
复制
SELECT 
    OrderNumber AS "Order/@OrderNumber", 
    CustomerID, 
    ITEM
FROM 
    OrderHeader
FOR XML PATH, ELEMENTS, ROOT('Orders')

了解更多details

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11360802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档