File xml

krak2
Ho un file xml delle dimensioni di 90MB che contiene una base di dati. Di questo file però, mi interessano solo alcuni tags.
Qualcuno sa come eliminare i tags che non mi servono?
Grazie.

Risposte
apatriarca
Un primo modo è scrivere un programma che apre il file xml e che ignora tutti i tag diversi da quelli che ti interessano, ma in alcuni casi ci potrebbero essere metodi più efficienti e veloci. Se ci fornisci maggiori informazioni sulla struttura del file xml e sull'esatto tipo di estrazione che dovresti fare ci aiuteresti ad aiutarti.

krak2
Come non detto..Ho risolto il problema utilizzando excel..Grazie mille lo stesso :smt023

krak2
Eccomi di nuovo qua a scrivere..
Nel fare il mapping xml con Excel mi sono accorta che alcuni campi anzicchè riempirli con testo, me li ha riempiti con tanti #.
Ad esempio:
1riga:sodinvieubrgojsopdkcnodsvhudbvsofvndsivno
2riga:######################################
3riga:######################################
4riga:fbokfgergowjfoeiwpjfpejpfwojmkdmjrgbfbfsk
5riga:######################################

A cosa è dovuto ciò?

ecc..

apatriarca
Come è fatto il tuo file xml? Come hai effettuato l'importazione con Excel? Cosa rappresenta ogni riga (a parte i # mi sembra che anche il resto non abbia molto senso ma immagino che tu non abbia esattamente incollato i veri testi letti dal file xml)?

Ma quale vorresti fosse l'output? Dopo aver scritto il mio precedente post mi sono ricordato dell'esistenza di XPath e XQuery che potrebbero risolvere molto velocemente ed efficientemente il tuo problema e che sono abbastanza facili da imparare (e se mi dici in cosa consiste l'operazione posso scriverti direttamente la query da usare).

krak2
Si ho scritto del testo a caso, non ha niente a che fare col file.

Il file è formato da tanti tag, ad esempio:




ecc..

di questi tag però, voglio prendere solo quelli che interessano a me, perchè sono tanti e in tutto ne devo prendere una quindicina. Mettiamo che in questo esempio a me interessano solo nome e descrizione.

L'importazione l'ho fatta seguendo i seguenti passi:
Ho aperto il file xml con Excel.
Ho selezionato "Usa riquadro attività origine xml".
Dopo di che si apre il riquadro "Origine xml" e mi vado a selezionare il tag di mio interessa in una cella. Poi clicco tasto dx sulla cella--> XML-->importa, e seleziono il mio file xml. Così facendo mi riempie tutte le celle.

Il mio output vorrei fosse un file con estensione csv.

apatriarca
Per prima cosa immagino che i # possano essere presenti nel caso in cui alcuni tag fossero assenti nel file xml, ma in qualche modo attesi. Non avendo accesso al file e non conoscendo l'esatta struttura del file xml non ho però modo di verificarlo.

krak2
In pratica in alcune celle vedo tante #############################################.
Però non appena clicco sulla cella che contiene queste ######################################## sulla riga di Excel vedo la descrizione in formato testo, ma quando clicco in un'altra cella ritornano a vedersi i #########################.
Boh non saprei è un pò strano, può essere perchè la descrizione testuale è lunga e quindi me li copre con questi ###??

apatriarca
Può darsi.. non sono un esperto di Excel.

Rggb1
"krak":
può essere perchè la descrizione testuale è lunga e quindi me li copre con questi ###??

Esattamente. E' solo un "problema" di visualizzazione: se verifichi che effettivamente nella cella corrispondente c'è un valore, l'importazione dovrebbe essere andata a buon fine.

krak2
Si grazie, in effetti era un problema di visualizzazione che sono riuscito a risolvere.
Adesso però sto facendo l' importazione del file csv con phpmyadmin, ma ad un certo punto il sistema mi dice: "Il numero dei campi non é valido nell'input CSV alla linea 13".
E non mi fa completare l' importazione dei miei dati. Come dovrei risolvere questo problema?

apatriarca
Potresti provare ad aprire il file in un editor di testi e vedere cosa c'è che non va alla linea 13. Se vuoi puoi provare a postarla.

krak2
Ho ascoltato il tuo consiglio e come per magia sono riuscito a completare l' importazione.
Adesso però ho quache problemino con le chiavi. In particolare quando vado a cliccare su un campo che lo voglio far diventare chiave primaria mi appare il seguente messaggio di errore: "#1062- Duplicate entry 'Sistema Nervoso' for key 'PRIMARY'.
Come posso risolvere ciò?
Grazie sempre.

Rggb1
Una chiave primaria ovviamente non può essere duplicata.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.