如何根据 SSIS 中的元素加入两个 XML 文件?
How to join two XML files based on an element in SSIS?
我有两个 XML 文件,一个有 2 个元素,另一个文件有 4 个元素。其中之一在两个文件之间是通用的。我想提取两个 XML 文件的内容,与公共元素进行连接(如两个 SQL 服务器 tables 之间的内部连接),然后转储输出将两个文件中的列合并到一个输出文件中。下面是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 服务器 table.
LicenseKey
AgentId
EmplId
DataValue
我在 Visual Studio 2017 年尝试通过创建一个 SSIS 包来使用连接、连接合并、查找等,但我没有看到任何可以帮助我合并两个 xml 文件的组件得到我想要的结果。
我正在寻找一个 SSIS 组件来根据共同元素合并两个 XML 文件,但我似乎找不到。我进行了 google 搜索,还查看了几个 youtube 视频,但无济于事。
有人可以帮忙吗?
遗憾的是,在 Integration Services 中找不到官方 XML 目标组件。有一些第三方组件,或者您可以使用变通方法写入 XML 文件。
要合并两个 Xml 文件,您必须执行以下步骤:
- 添加 2 个 XML 源组件(每个文件一个)
- 在每个 XML 源和 select LicenseNumber 和 LicenseKey 作为排序列之后添加一个排序组件
- 添加 Merge Join 组件以合并两个流
要将数据存储在 XML 文件中,您可以点击以下链接之一:
- Yet another SSIS XML Destination
- An “secret” SSIS XML Destination Provider you might not found yet (您需要先将数据导入暂存 table)
- How to export data from database tables to an XML file using SSIS (需要分期 table)
或者您可以使用第三方组件:
我有两个 XML 文件,一个有 2 个元素,另一个文件有 4 个元素。其中之一在两个文件之间是通用的。我想提取两个 XML 文件的内容,与公共元素进行连接(如两个 SQL 服务器 tables 之间的内部连接),然后转储输出将两个文件中的列合并到一个输出文件中。下面是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 服务器 table.
LicenseKey
AgentId
EmplId
DataValue
我在 Visual Studio 2017 年尝试通过创建一个 SSIS 包来使用连接、连接合并、查找等,但我没有看到任何可以帮助我合并两个 xml 文件的组件得到我想要的结果。
我正在寻找一个 SSIS 组件来根据共同元素合并两个 XML 文件,但我似乎找不到。我进行了 google 搜索,还查看了几个 youtube 视频,但无济于事。
有人可以帮忙吗?
遗憾的是,在 Integration Services 中找不到官方 XML 目标组件。有一些第三方组件,或者您可以使用变通方法写入 XML 文件。
要合并两个 Xml 文件,您必须执行以下步骤:
- 添加 2 个 XML 源组件(每个文件一个)
- 在每个 XML 源和 select LicenseNumber 和 LicenseKey 作为排序列之后添加一个排序组件
- 添加 Merge Join 组件以合并两个流
要将数据存储在 XML 文件中,您可以点击以下链接之一:
- Yet another SSIS XML Destination
- An “secret” SSIS XML Destination Provider you might not found yet (您需要先将数据导入暂存 table)
- How to export data from database tables to an XML file using SSIS (需要分期 table)
或者您可以使用第三方组件: