2

我有两个 XML 文件,一个有 2 个元素,另一个文件有 4 个元素。其中一个在两个文件之间是通用的。我想提取两个 XML 文件的内容,使用公共元素进行连接(如两个 SQL 服务器表之间的内部连接),然后将两个文件中列的输出转储到一个输出文件中。以下是file1.xml 的内容。

<?xml version="1.0" standalone="yes"?>
<DataPairs>
<DataPair>
<LicenseNumber>12345</LicenseNumber>
<DataValue>12331234</DataValue>
</DataPair>
<DataPair>
<LicenseNumber>43432</LicenseNumber>
<DataValue>435432134</DataValue>
</DataPair>
</DataPairs>

下面是file2.xml的内容

<LastRecords>
<DataRecord><AgentNum>013512</AgentNum><EmpId>124532523</EmpId><LicenseKey>12345</LicenseKey></DataRecord>
<DataRecord><AgentNum>013512</AgentNum><EmpId>124532523</EmpId><LicenseKey>12345</LicenseKey></DataRecord>
</LastRecords>

我想在上述文件之间进行连接(如 INNER JOIN)。无论 file1 中的 LicenseNumber 与 file2.xml 中的 LicenseKey 匹配,我都想将以下值输出到 SQL 服务器表中。

LicenseKey
AgentId
EmplId
DataValue

我已经尝试通过创建 SSIS 包在 Visual Studio 2017 中使用 join、join merge、lookup 等,但我没有看到任何组件可以帮助我合并两个 xml 文件以获得我想要的结果。

我正在寻找一个 SSIS 组件来基于一个公共元素合并两个 XML 文件,但我似乎找不到一个。我做了谷歌搜索,还看了几个 youtube 视频,但无济于事。

有人可以帮忙吗?

4

1 回答 1

1

不幸的是,在集成服务中没有找到正式的 XML 目标组件。有一些第三方组件,或者您可以使用解决方法来写入 XML 文件。

为了合并两个 Xml 文件,您必须按照以下步骤操作:

  1. 添加 2 个 XML Source 组件(每个文件一个)
  2. 在每个 XML 源之后添加一个排序组件,并选择 LicenseNumber 和 LicenseKey 作为排序列
  3. 添加 Merge Join 组件以合并两个流
  4. 要将数据存储在 XML 文件中,您可以点击以下链接之一:

    或者您可以使用第三方组件:

于 2019-05-30T00:59:18.667 回答