【问题标题】:SQL FOR XML PATH: attributes not staying in the nodeSQL FOR XML PATH:属性不在节点中
【发布时间】:2016-11-16 15:20:03
【问题描述】:

我有:

(SELECT TOP 1 '01' AS '@language', 'a description' as 'data()' FROM @tmpData AS  FOR XML PATH('description'),ROOT('course'),TYPE),  
(SELECT TOP 1 '2016-CRS' AS '@code' FROM @tmpData as t FOR XML PATH('course'),TYPE),

这表明:

<course>
        <description language="01">a description</description>
</course>
<course code="2016-CRS" />

但我真正需要的是:

<course code="2016-CRS">
        <description language="01">a description</description>
</course>

我知道这很简单,但我做不到。感谢您的任何见解!

【问题讨论】:

  • 什么是@tmpData?您不使用表中的任何值...

标签: sql sql-server xml tsql xpath


【解决方案1】:

您的示例并不十分清楚,因为您使用的是数据源FROM @tmpData,根本没有使用它,但这会返回您似乎需要的结果:

SELECT '2016-CRS' AS [@code] 
      ,'01' AS [description/@language]
      ,'a description' as [description]
FOR XML PATH('course')

结果

<course code="2016-CRS">
  <description language="01">a description</description>
</course>

【讨论】:

  • 谢谢,但您的代码没有关闭描述标签:(
  • @MiguelMas 你为什么这么认为?使用FOR XML 创建 XML 将永远生成有效的 XML...
  • @MiguelMas 啊,没关系...因为您显然喜欢这个答案(感谢您的接受!),另外 - 支持它会很好。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 2018-07-17
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多