Как объединить два XML-файла на основе элемента в SSIS? - PullRequest
2 голосов
/ 29 мая 2019

У меня есть два 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). Когда бы LicenseNumber из file1 не совпадал с LicenseKey в file2.xml, я хотел бы вывести следующие значения в таблицу сервера SQL.

LicenseKey
AgentId
EmplId
DataValue

Я пытался использовать объединение, объединение, поиск и т. Д. В Visual Studio 2017, создав пакет служб SSIS, но я не вижу ни одного компонента, который мог бы помочь мне объединить два файла XML для получения желаемых результатов.

Я ищу компонент служб SSIS для объединения двух файлов XML на основе общего элемента, но, похоже, не могу найти один. Я сделал поиск в Google, а также просмотрел несколько видео на YouTube, но безрезультатно.

Может кто-нибудь помочь?

1 Ответ

2 голосов
/ 30 мая 2019

К сожалению, в Integration Services не найден официальный целевой компонент XML.Есть какой-то сторонний компонент, или вы можете использовать обходной путь для записи в файл XML.

Чтобы объединить два файла XML, вам необходимо выполнить следующие шаги:

  1. Добавить 2Компонент источника XML (по одному для каждого файла)
  2. Добавьте компонент сортировки после каждого источника XML и выберите LicenseNumber и LicenseKey в качестве столбцов сортировки
  3. Добавьте компонент Merge Join для объединения обоих потоков
  4. Для хранения данных в файле XML вы можете перейти по одной из следующих ссылок:

    Или вы можете использовать сторонний компонент:

...