2011-09-22 5 views
0

SQL 테이블에 SSIS 2005를 사용하여 구문 분석 할 XML 문서가 있습니다. 하지만 다중 레벨이며 각 게시물에 콜렉션 (?)이 포함되어 있기 때문에 문제가 있습니다. SSIS에서 병합 조인을 사용하여 다중 행 XML을 한 행으로 가져 오는 방법을 찾았지만 여러 < 주소 > 요소를 한 행으로 처리하는 방법을 알아낼 수 없습니다.요소에 컬렉션이있는 다중 레벨 XML 처리

누군가 나를 도와 줄 수 있기를 바랍니다.

편집 :
출력 하나의 행에 다음 데이터가 포함되도록하겠습니다.

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 


당신이 내 adress.hemadress/mobiltelefon/hemtelefon 표기법을 이해 바랍니다. <과 일치하는 > 요소는 atm으로 사용되지 않으며, 사용되는 경우 <어도 저기 >에 대해 동일한 해결책이 사용될 수 있습니다. : 당신이 볼 수있는

다음은 <adresser> 요소에 세 <ADRESS> 요소가, XML 구조의 예, 나는 그들 모두가 하나의 행에 출력하고 싶습니다. < 주소의 일부 요소를 무시할 수 있다면 요소는 <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> 
+0

개인 레코드가있는 한 행의 주소 요소 또는 한 행의 주소 요소를 원합니 까? – Wil

+0

사람과 함께 한 줄에. 나는 편집하고 설명을 추가 할 것이다. – Markus

답변

0

나는 나의 SSIS에있는 세 개의 SQL 서버 대상을 사용하여 하나 개의 테이블에 < 사람 > 테이블 하나의 출력, <ADRESS>를 지정하여이 문제를 해결하고 < adresser (단지 personid 및 adresserid 포함) > 주소 및 사람 테이블과 일치하는 하나의 테이블로. 그런 다음 SQL Server의 뷰를 사용하여 원하는 정보를 조합하여 SSIS에서 생성 한 개인 ID와 adresserid를 사용했습니다 (내 xml 용 ID를 생성 한 SSIS입니까?).

하지만 SSIS에서 해결할 수 있는지 궁금합니다.