【发布时间】:2016-12-09 20:49:22
【问题描述】:
在 SQL Server 中,如何将一组节点合并为一个?以下面的 XML 为例。如何从下面的格式转到在单个“属性”节点下拥有多个“属性”节点?
<Thing>
<Id>160</Id>
<Attributes>
<Attribute>
<Id>2</Id>
<Values>
<Value>94</Value>
</Values>
</Attribute>
</Attributes> -- **how can i remove this**
<Attributes> -- **and this**
<Attribute>
<Id>4</Id>
<Values>
<Value>103</Value>
</Values>
</Attribute>
</Attributes>
</Thing>
编辑:我对这个问题有第二部分 鉴于此输入:
<Thing>
<Id>160</Id>
<Attributes>
<Attribute>
<Id>2</Id>
<Values>
<Value>94</Value>
</Values>
</Attribute>
</Attributes>
<Attributes>
<Attribute>
<Id>2</Id>
<Values>
<Value>103</Value>
</Values>
</Attribute>
</Attributes>
<Attributes>
<Attribute>
<Id>4</Id>
<Values>
<Value>106</Value>
</Values>
</Attribute>
</Attributes>
</Thing>
如何合并属性以实现此输出,其中值也根据匹配的 ID 合并?
<Thing>
<Id>160</Id>
<Attributes>
<Attribute>
<Id>2</Id>
<Values>
<Value>94</Value>
<Value>103</Value>
</Values>
</Attribute>
<Attribute>
<Id>4</Id>
<Values>
<Value>106</Value>
</Values>
</Attribute>
</Attributes>
</Thing>
【问题讨论】:
-
这个 XML 是如何生成的?看起来,好像最好在生成它时解决它......这是在你的控制之下吗?
-
是否总是有一个元素
<Id>,其余的只是<Attributes>? -
我同意,最好的办法是在生成期间修复它,但这不是一个选项。第二个问题的答案是肯定的。
-
好的,第二个是让我给出的答案看起来很好:-)
-
谢谢!我不知道这是可能的。如果你有时间,我用一个后续问题编辑了原始帖子。再次感谢!
标签: sql-server xml sqlxml