Импорт узлов XML как столбца Xml с помощью служб SSIS - PullRequest
0 голосов
/ 15 июля 2009

Я пытаюсь использовать Xml Source для уничтожения исходного XML-файла, однако я не хочу, чтобы весь документ был разбит на таблицы. Скорее я хочу импортировать узлы xml в строки XML.

упрощенным примером будет импортирование приведенного ниже документа в таблицу с именем people с столбцом person типа «xml». При взгляде на XmlSource - кажется, что он подходит для измельчения исходного xml на несколько записей - не совсем то, что я ищу.

Есть предложения?

<people>
    <person>
        <name>
            <first>Fred</first>
            <last>Flintstone</last>
        </name>
        <address>
            <line1>123 Bedrock Way</line>
            <city>Drumheller</city>
        </address>
    </person>
    <person>
        <!-- more of the same -->
    </person>
</people>

Ответы [ 2 ]

1 голос
/ 05 августа 2009

Я не думал, что SSIS 2005 вообще поддерживает тип данных XML. Я предполагаю, что это "поддерживает" это как DT_NTEXT.

В любом случае вы не можете использовать источник XML для этой цели. Вы должны написать свой собственный. Это на самом деле не так сложно, как кажется. Основывайтесь на примерах в Books Online. Обработка будет состоять из перехода к первому дочернему узлу, а затем вызова XmlReader.ReadSubTree для возврата нового XmlReader только по следующему <person/> элементу. Затем используйте ваш любимый XML API, чтобы прочитать весь <person/>, преобразовать полученный XML в строку и передать его по конвейеру. Повторите для всех <person/> узлов.

0 голосов
/ 05 августа 2009

Не могли бы вы изменить выходные данные в формате xml так, чтобы содержимое person отображалось в виде строки? Используйте escape-символы для <>.

Вы могли бы также использовать задачу скрипта для ее анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...