Импорт файлов XML с различными структурами с использованием служб SSIS

У меня есть несколько файлов XML с разными структурами, но все они имеют определенный набор узлов.

Моя цель - импортировать только эти взаимные узлы в таблицу SQL Server. Как я могу продолжить, зная, что не могу сгенерировать .Xsd для каждого типа, так как существует много возможных вариантов XML-файлов? Заранее спасибо.

Всего 2 ответа


Я не думаю, что это легко сделать с помощью SSIS .

Если у вас нет других вариантов, вы можете использовать компонент Script в качестве источника и анализировать XML-файлы с помощью сценария C # или VB.NET, а затем генерировать выходные данные только с нужными столбцами.

Вы можете обратиться к следующим статьям для получения дополнительной информации об использовании компонента Script:

Библиотека классов SchemaMapper

Некоторое время я работал над проектом под названием SchemaMapper. Это библиотека классов, разработанная с использованием C #. Вы можете использовать его для импорта табличных данных из XML и других форматов, имеющих различные структуры, в единую таблицу SQL-сервера.

Вы можете обратиться к вики проекта за пошаговым руководством:


Кроме того, не стесняйтесь проверить следующий ответ, он может дать вам некоторые идеи:


Простым решением было бы загрузить все эти файлы XML в таблицу XML (2 столбца: FileId и XmlData). Это можно сделать как 1-й шаг пакета.
Затем вы напишите хранимую процедуру, и она будет уничтожать XML из этой таблицы в ваши финальные таблицы. Эта хранимая процедура будет вызываться как 2-й шаг в пакете служб SSIS.


Есть идеи?

10000