Ciao,
sto sviluppando una procedura che mi deve fare queste operazioni:
1) leggere dei record da una vista
2) scorrendoli, impostare i corretti valori dei relativi nodi xml
3) scrivere il file xml
La struttura del file xml è di questo tipo:
codice:
<nodoElementi>
<nodoElemento>
<nodoCaratteristiche></nodoCaratteristiche> (19 attributi)
<nodoIndirizzo></nodoIndirizzo> (5 attributi)
<nodoDescrizione></nodoDescrizione> (1 attributo)
<nodoDati></nodoDati> (5 attributi)
<nodoImporti></nodoImporti> (4 attributi)
<nodoCaratteristicheA></nodoCaratteristicheA> (2 attributi)
<nodoCaratteristicheB></nodoCaratteristicheB> (2 attributi)
<nodoConfigurazione></nodoConfigurazione> (3 attributi)
<nodoGoogleMaps></nodoGoogleMaps> (5 attributi)
<nodoImmagini>
<nodoImmagine></nodoImmagine> (2 attributi)
</nodoImmagini>
</nodoElemento>
....... altri nodiElemento
</nodoElementi>
Ho una media di 1300 record da scrivere nell'xml e, per ogni nodo, devo inserire degli attributi specifici e, purtroppo, tutti gli attributi indicati da specifiche vanno inseriti anche se valorizzati di default!!! L'unico nodo che posso omettere è nodoImmagini se non ho immagini
Ho pensato quindi di scrivere la procedura in questo modo:
[list=1][*]Estrazione dei record dalla vista[*]Scorrimento del recordset[*]Per ogni record ciclato, richiamo a specifiche funzioni che, per ogni record, ne impostano i nodi ed i relativi attributi in un array multidimensionale che avrà questa forma:
$nomeArray[idElemento][nodoElemento][nodoSpecifico] = array(attr1 => '', attr2=> '', ... , attrN=>'');[/list=1]
A seguire, scorrimento dell'array generato e scrittura del file XML utilizzando la classe simpleXML
Da un test che ho fatto, solo per la creazione dell'array per 1276 record ho un tempo di esecuzione di 241,19376 secondi
La mia domanda è ... c'è un modo più veloce per gestire array multidimensionali? ho letto di list ed SPL che non conosco ... potrebbero essere valide alternative per la velocizzare?