У меня есть XML-документ, который я хотел бы проанализировать с помощью SSIS 2005 в таблице SQL. Но у меня с этим проблемы, потому что он многоуровневый и содержит коллекции (?) в каждом сообщении. Я нашел решение для получения многоуровневого XML в одну строку с помощью Merge Join в SSIS, но я не могу найти способ обработки нескольких элементов ‹address›, чтобы поместить их в одну строку.
Надеюсь, кто-то может помочь мне с этим.
Изменить:
Поэтому я хотел бы, чтобы выходные данные содержали следующие данные в одной строке.
Personnummer, fornamn, efternamn, kon, epost, avdelning, foretagsnr, anstnr,
arbetsledare, signatur, pkontering3, adress.hemadress.gatuadress,
adress.hemadress.adress2, adress.hemadress.co_adress, adress.hemadress.postnr,
adress.hemadress.postort, adress.hemadress.land, adress.mobiltelefon.telefonnr,
adress.hemtelefon.telefonnr
Надеюсь, вы понимаете мою нотацию адрес.hemadress/mobiltelefon/hemtelefon. Элемент ‹befattningar› не используется в банкомате, и если он будет использоваться, вероятно, сработает то же решение для ‹addresser›. :)
Вот пример структуры xml, как вы видите, в элементе ‹addresser› есть три элемента ‹address›, и я хотел бы, чтобы все они выводились в одну строку. Если бы можно было игнорировать некоторые элементы внутри элемента ‹address› на основе текста в элементе ‹adresstyp›, это было бы здорово, но я думаю, что могу обойтись и без этой функциональности.
<PersonCollection>
<Person>
<Personnummer>190001010101</Personnummer>
<Fornamn>firstname</Fornamn>
<Efternamn>lastname</Efternamn>
<Kon>K</Kon>
<Epost>[email protected]</Epost>
<Avdelning>B</Avdelning>
<Foretagsnr>1</Foretagsnr>
<Anstnr>1</Anstnr>
<Arbetsledare>firstname lastname</Arbetsledare>
<Signatur>X</Signatur>
<PKontering3>XXXX</PKontering3>
<Befattningar>
<Befattning>
<Status>X</Status>
<Namn>Position</Namn>
</Befattning>
</Befattningar>
<Adresser>
<Adress>
<Adresstyp>Hemadress</Adresstyp>
<Telefonnr />
<Gatuadress>Streetadress 1</Gatuadress>
<Adress2 />
<Co_Adress />
<Postnr>111 22</Postnr>
<Postort>City</Postort>
<Land>Country</Land>
</Adress>
<Adress>
<Adresstyp>Mobiltelefon</Adresstyp>
<Telefonnr>010-010 01 01</Telefonnr>
<Gatuadress />
<Adress2 />
<Co_Adress />
<Postnr />
<Postort />
<Land />
</Adress>
<Adress>
<Adresstyp>Hemtelefon</Adresstyp>
<Telefonnr>01-01 01 01</Telefonnr>
<Gatuadress />
<Adress2 />
<Co_Adress />
<Postnr />
<Postort />
<Land />
</Adress>
</Adresser>
</Person>
</PersonCollection>