比方说,我有XML的以下两件在我的数据库在SQL服务器合并XML
<!-- XML 1 -->
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 1 c value</item>
</pairs>
<!-- XML 2 -->
<pairs>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 1 e value</item>
</pairs>
该数据是使用XML
数据类型存储在两个单独的表,另外这个XML列链接到描述预期的XML如
[PairData] [xml](CONTENT [foo].[Pairs]) NULL
的格式在存储过程/函数模式,我想这两个XML结构合并到以下几点:
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 2 e value</item>
</pairs>
所以,从第一支XML的,我们已经采取的项目:
a, b
从第二块XML的,我们已经采取的项目:
c, d, e
注意,XML的两件有一个共同的项目有一个关键:
c
在这种情况下,从XML 2的值应在合并中使用xml(放弃xml 1中的值)。另一种情况是XML 1或2可能是NULL,因此合并过程应该处理这个并简单地返回另一个。或者,在这种情况下,返回NULL可能都是NULL。另外,在我们当前的实现中,我们从数据库返回两个XML文档并在代码中进行合并。然而,我们宁愿在数据库中完成这种合并,因为多个不相关的进程正在调用这个过程。
答案取决于数据存储。 (例如,您的源是一个表,一个xml列或一个字符串)。如果你能提供更多的信息,那将会很好。 – 2012-02-10 13:05:55
欢呼的评论,问题更新。 – MrEyes 2012-02-10 13:12:49