Dunque... devo importare un file xml che contiene un catalogo di prodotti in un db mysql. Ora non mi interessa sapere la sintassi, o le funzioni php o la creazione del DB... lì ci dovrei arrivare.
Mi interessa sapere invece qual è la giusta logica da seguire per rendere lo script di importazione il più corretto e performante possibile.
Di seguito uno stralcio dell'xml.
Vedete che dichiara dei prodotti e ne specifica le proprietà: titolo, autore etc.
Un problema sta nel fatto che alcune proprietà, per es. l'etichetta discografica, o il formato, non sono esplicitate in chiaro, ma c'e' un codice numerico che le indica (come fosse l'id dell'etichietta, o l'id del' formato).
La conversione di tale codice è in fondo all'xml (in grassetto).
Ovviamente io mi devo trovare per ogni prodotto ad avere tutte le variabili in chiaro tipo
$titolo='the division bell'; $autore='pink floyd'; $genere='rock'; $formato='CD AUDIO'; $etichetta='Universal'
Ora... che logica seguire?
- Salvare tutti i prodotti non in chiaro in qualche variabile e poi sostituire gli id_etichetta e id_formato usando la legenda in fondo all'xml?
- Oppure prima salvare la legenda e poi parsare il resto dell'xml?
- O ancora salvare tutto in una tabella temporanea e lavorare su quella
- O altre vie a cui il mio cervello non arriva.
Grazie in anticipo!
<cc:album id="5445974" identity="v1YToyOntzOjE6ImQiO2k6MDtzOjE6ImYiO3M6MT oiMyI7fQ==">
<cc:artist>HOUSTON, CISSY</cc:artist>
<cc:title>PRESENTING CISSY HOUSTON</cc:title>
<cc:unit>1</cc:unit>
<cc:format>55</cc:format>
<cc:label>39838</cc:label>
<cc:country>2</cc:country>
<cc:barcode>5013929075436</cc:barcode>
<cc:date>2012-05-24</cc:date>
<ccrice currency="EUR">970</cc
rice>
<ccrecision>90</cc
recision>
<cc:delivery>5</cc:delivery>
<cc:stock>yellow</cc:stock>
</cc:album>
<cc:album id="5449023" identity="v1YToyOntzOjE6ImQiO2k6MDtzOjE6ImYiO3M6MT oiMyI7fQ==">
<cc:artist>CHASING OWLS</cc:artist>
<cc:title>QUELL</cc:title>
<cc:unit>1</cc:unit>
<cc:format>55</cc:format>
<cc:label>82654</cc:label>
<cc:country>2</cc:country>
<cc:barcode>5052571031537</cc:barcode>
<cc:date>2012-05-21</cc:date>
<ccrice currency="EUR">490</cc
rice>
<ccrecision>70</cc
recision>
<cc:delivery>17</cc:delivery>
<cc:stock>red</cc:stock>
</cc:album>
<cc:album id="5947752" identity="v1YToyOntzOjE6ImQiO2k6NTtzOjE6ImYiO3M6Mj oiMjIiO30=">
<cc:artist>PACIFIC</cc:artist>
<cc:title>REVERIERS</cc:title>
<cc:unit>1</cc:unit>
<cc:format>55</cc:format>
<cc:label>26938</cc:label>
<cc:country>1</cc:country>
<cc:barcode>5099951914509</cc:barcode>
<cc:date>2008-04-15</cc:date>
<ccrice currency="EUR">1580</cc
rice>
<ccrecision>95</cc
recision>
<cc:delivery>5</cc:delivery>
<cc:stock>green</cc:stock>
</cc:album>
<cc:label id="39838">SHOUT</cc:label>
<cc:label id="26938">SHOUT</cc:label>
<cc:format id="55">CD</cc:format>
<cc:country id="2">EU</cc:country>
<cc:country id="12">GERMANY</cc:country>