SSIS - Estrarre solo alcuni dati da un documento XML

mercoledì 22 luglio 2009 - 16.56

Evander Profilo | Newbie

Salve a tutti , ringrzio in anticipo chiunque mi aiuterà

Il mio problema é il seguete :
1- sono un neofita
2- stro creando un Package SSIS e per la prima volta mi ritrovo alle prese con un file xml in entrata

il file é abbastanza grande e contiene svariati dati di cui a me interessa estrarne solo 5 sparsi nel file , onosco nomi dei campi e lastruttura per arrivarci.

Sto costruendo un DATA FLOW dotato di XML Source e vorrei memorizzare tali dati in una cartella temporanea o in variabili. tale package é dotato poi di altre strutture chi ho già creato e funzionanti .
Il mo problema é quello legato allo "scremare i dati" ed aggregare tutti i dati rilevanti in un record unico su cui poi lavorare ...qualcuno sa come farlo ?

alx_81 Profilo | Guru

>Salve a tutti , ringrzio in anticipo chiunque mi aiuterà
ciao

>Il mio problema é il seguete :
>1- sono un neofita
>2- stro creando un Package SSIS e per la prima volta mi ritrovo alle prese con un file xml in entrata
>il file é abbastanza grande e contiene svariati dati di cui a me interessa estrarne solo 5 sparsi nel file , onosco nomi dei campi e lastruttura per arrivarci.

>Sto costruendo un DATA FLOW dotato di XML Source e vorrei memorizzare
>tali dati in una cartella temporanea o in variabili. tale package
>é dotato poi di altre strutture chi ho già creato e funzionanti.
>Il mo problema é quello legato allo "scremare i dati" ed aggregare
>tutti i dati rilevanti in un record unico su cui poi lavorare
>...qualcuno sa come farlo ?
Così senza ulteriori informazioni non possiamo aiutarti.. Mi serve sapere com'è fatto il tuo xml, come li vuoi ottenere, cosa vuoi aggregare, ecc..
Di strumenti ce ne sono tanti, ma potresti aver bisogno di uno script transformation task.
Comunque, intanto che mi dai queste risposte, mi dovresti indicare anche quale versione di sql server hai, 2005, 2008?
ciao!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

Evander Profilo | Newbie

RAGAZZI sono disperato . Questo é quello che ho postato prima , dopo aggiungerò un pezzo :

Ciao Alex_81
Innanzitutto ti ringrazio per l'attenzione prestatami , davvero grazie.

Hai ragione, in effetti sono stato un po' poco preciso .

- Utilizzo SQLServer 2005

- il mio file xml non é semplicissimo rispetto a molti degli esempi trovati in rete , cmq rispetto alla propria struttura XSD é valido e funzionante.
Il fatto é che il nome dei dati che mi interessano sono inseriti come valore dell'attributo "title" dei tag , metre i valori che devo estrarre sono nel'attributo "Value".
Il file non lo genero io e non posso modificarne la struttura.
In particolare racchiude tutti i deti relaitivi a una singola entità (che potremmo esemplificare come una casa o alloggio per es.) di tutti i dati presenti , circa una cinquantina , me ne interessano solo 4 posti a livelli di gerarchia differenti . Alcuni di questi dati potrebbero avere il valore nullo ossia con il tag "value" uguale a una stringa vuota.
Tutti i campi che non mi intaressano non devo considerarli .
Posto un esempio modificato.

(in realtà ho alcuni dati a livelli gerarchici profondi ...ma per ora dovrebbe bastare come esempio

<Form id="23332" name="ALLOGGIO " subType="ResocontoPerizia" subClass=" RESOCONTO"> < - <UserData id="4434u" type="FormAttributes"> <UserValue value="" title="VIALIBERA" /> <UserValue value="" title="PRATICA_ISPEZZIONE" /> <UserValue value="" title=" MODIFICHE_APPROVATE" /> <UserValue value="" title="MODIFICHE_PROPOSTE" /> <UserValue value="" title="MATERIALE " /> <UserValue type="int" value="14" title="CODICE_CONDOMINIO" /> <UserValue value="QE23" title="TIPO_PERIZIA" /> <UserValue value="" title="DATA_RINVIO" /> <UserValue value="3-4-2025" title="DATA_LAVORI" /> <UserValue value="" title="DATA_FINE_LAVORI" /> </UserData> </Form> <Location id="z5de5" name="Develop" locationId="A546"> - <UserData id="34u "> <UserValue value="Veneto" title="Località" /> <UserValue value="850" title="Altitude" /> <UserValue value="Via Dotto" title="Indirizzo " /> </UserData> </Location>


Fingiamo che a me interessi estrarre i valori relativo al :
- Codic condominio
- data inizio lavori
- data fine lavori
- località
- indirizzo

se volessi memorizzarle o in variabili globali o in una tabella
(ma preferirei la prima) quale é la procedura corretta?
ho provato in alternativa a creare 5 "XML source" paralleli per estrarre i singoli dati ma mi sembra alqunto assurdo e cq non funziona....

Grazie ancora

UPDATA :

Mi basterebbe anche un codice che mi ermetta di analizare questo tipo di file o anche solo estrarne i valori al volo
in variabili VB o simili che sia facilmente inseribile in SSIS


Grazie davvero in anticipo .

alx_81 Profilo | Guru

ti rimando all'altra tua discussione:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=31771
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

Evander Profilo | Newbie

Grazie , ho postato 2 volte a distanza di 1 settimana per la diperazione :-)
Grazie ancora , applico e vi posto il risultato.

Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5