【发布时间】:2012-02-13 17:34:17
【问题描述】:
我在 Sql 中有一个带有 Xml 列的表。所有 Xml 文件都有相同的架构,我想将其中的一些 Xml 合并在一起。
以 X1 为例:
<A>
<B>
<C id='101'>
<D id='102'>abcd</D>
</C>
<C id='103'>
<D id='104'>zxcv</D>
</C>
</B>
</A>
和 X2:
<A>
<B>
<C id='101'>
<D id='102'>abcd</D>
<D id='501'>abef</D>
</C>
<C id='502'>
<D id='503'>efgh</D>
</C>
</B>
</A>
X1+X2=...
<A>
<B>
<C id='101'>
<D id='102'>abcd</D>
<D id='501'>abef</D>
</C>
<C id='103'>
<D id='104'>zxcv</D>
</C>
<C id='502'>
<D id='503'>efgh</D>
</C>
</B>
</A>
那么哪种选择是最好的以及如何选择:
- Sql 中的 XQuery
- C# XDocument 和 XPath
- ...
【问题讨论】:
-
你想要通过 ID 连接的元素的联合吗?
-
@ARZ,如果 X2 中的
<D id='102'>具有值12345,是否可能出现这种情况?如果是,如何合并这些文件? -
@ARZ,Kirill Polishchuk 重申这一点,如果匹配
ids 的元素具有不同的值,那会怎样? -
架构是否像您发布的 XML 一样简单?或者您是否需要一些通常可以做到这一点的代码?
-
我说首先预处理两个 xml 文件并将文本节点映射到路径。然后遍历其中一个文件,查看另一个xml的映射中是否存在crt节点路径
标签: c# sql xml xquery linq-to-xml