Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    Array multidimensionali grandi e scrittura XML

    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?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Invece di mettere i dati in un array scrivi direttamente il file XML, che te ne fai del passaggio dei dati nell'array?

    - apri il file xml in scrittura
    - cicli sul recordset e ad ogni ciclo scrivi un "nodoElemento"
    - chiudi il file e fine

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.