Generare XML con PHP

Ho la necessità di far generare file XML prelevando i dati da una tabella  e quindi da una basedati MySql queste informazioni si dovrannò interfacciare con un applet java, se mai ci riuscirò!!!

inviato 11 anni fa
EKELON77
X 0 X

Per creare un file XML ci sono diversi modi. Puoi procedere "manualmente", XML è un semplice file di testo che rispetta una certa sintassi. Personalmente ti consiglio di fare così.

Oppure puoi appoggiarti alle estensioni SimpleXML o DOM XML

In tutti i casi comunque ti conviene prima studiare un po' come è fatto un file XML.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Io conosco la struttura XML come deve essere definità xchè l'azienda per cui lavoro sviluppa in JAVA,XML e XSLT e fa generare i file XML da una servlet JAVA.

Comunque tornando a noi procedere manualmente è semplice conoscendo che cosa devi realizzare oppure ho visto che pui far generare un file XML da PHP MyAdmin con in campi delle tabella e dentro i valori necessari anche se è limitato a quel numero di record che tu hai quando crei l'output.

Per quanto riguarda le estennzioni sono difficili da integrare con la versione di PHP che ho e poi è difficile fargli generare del codice XML ovvero creare un file ogni volta che starti la pagina richiesta quando ci sono modifiche ovviamente.

Tu conosci qualche sito dove è possibile reperire informazioni su come funzionano le estenzioni e un esempio di script per generare un file XML con accesso alla basedati? :coolsmiley:

risposto 11 anni fa
EKELON77
X 0 X

 :dunno:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Non capisco!!! :lamo: :wallbash:

risposto 11 anni fa
EKELON77
X 0 X

non so cosa consigliarti...  :P

ribadisco, secondo me ti conviene fare tutto a mano, è molto semplice. Butta giù delle righe di codice che ne discutiamo.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

OK, va bene credo che farò come dici i tu e quindi inzierò domani a creare un file XML a mano, poi ti ricontatterò quando avrò una bozza del file. O0

risposto 11 anni fa
EKELON77
X 0 X

Questo è il file XML che ho creato:

<gestvideoteca>

    <menu>

        <idmenu></idmenu>

        <nome></nome>

        <descr></descr>

        <link></link>

    </menu>

</gestvideoteca>

come noterai mancano i valori al suo interno, vorrei poterli inserire dinamicamente per ogni record della tabella. :o

risposto 11 anni fa
EKELON77
X 0 X

Problemi nell'eseguire la query? Dai un'occhiata al secondo messaggio di questa discussione:

http://www.phpnews.it/forum/index.php?topic=106.0

lì viene costruita una tabella, tu invece devi riempire il file XML ma la cosa è praticamente identica. Fai prima qualch esperimento e se hai problemi riporta il codice.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ho dato un'occhiata all'articolo da te consigliato ma come faccio a sostituire i tag HTML con quelli XML e poi non devo inserire qualche riga per far interpretare i codice al PHP? :bye: 

risposto 11 anni fa
EKELON77
X 0 X

Devi adattare questo codice:

<?php

$conf_host = 'localhost';
$conf_user = 'root';
$conf_pass = 'mia_password';
$conf_db = 'nome_database';


// connessione a MySQL
$link = mysql_connect($conf_host, $conf_user, $conf_pass);
if (!$link) {
   die('Errore nella connessione: ' . mysql_error());
}

// selezione del database
$db_selected = mysql_select_db($conf_db, $link);
if (!$db_selected) {
   die ('Errore nella selezione del DB: ' . mysql_error());
}


// invio query
$query = "SELECT * FROM nome_tabella";

$result = mysql_query($query, $link);
if (!$result) {
   die('Errore nella query: ' . mysql_error());
}

echo('<gestvideoteca>');

while ($riga = mysql_fetch_assoc($result))
{
        echo("<menu>
                <idmenu>$riga[idmenu]</idmenu>
                <nome>$riga[nome]</nome>
                <descr>$riga[descr]</descr>
                <link>$riga[link]</link>
              </menu>");
}

echo("</gestvideoteca>");
?>

1) Modifica le variabili all'inizio dello script con i dati corretti per la connessione al DB.

2) Nella query sostituisci "nome_tabella" con il nome della tabella in cui risiedono i dati da portare su XML. Ovviamente modifica la query se hai altre esigenze.

3) Modifica le variabili $riga[idmenu], $riga[nome], ecc. mettendo al loro interno (nelle parentesi quadre) il nome corretto delle colonne della tua tabella.

4) studia un po' di PHP  :coolsmiley:

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Non è stato necessario apportare modifiche al codice ma il risultato non è come mi aspettavo l'output non rispecchia per niente la sintassi XML ma se clikko per vedere il codice HTML sorgente vedo:

<gestvideoteca><menu>

                <idmenu>2</idmenu>

                <nome>Archivio</nome>

                <descr>Gestione Archivio</descr>

                <link>./gestarchivio.php</link>

              </menu><menu>

                <idmenu>1</idmenu>

                <nome>Novità</nome>

                <descr>Gestione Novità</descr>

                <link>./gestnews.php</link>

              </menu><menu>

                <idmenu>3</idmenu>

                <nome>Prossimamente</nome>

                <descr>Gestione Film in Uscita</descr>

                <link>./gestprossimamente.php</link>

              </menu><menu>

                <idmenu>4</idmenu>

                <nome>Games</nome>

                <descr>Gestione Videogiochi</descr>

                <link>./gestvideogames.php</link>

              </menu></gestvideoteca>  :'(

io pensavo che questa funzione permetteva di darmi a video e su file un file XML, non fa niente studiero come apportare le modifiche al codice in modo da avere quello che necessitò sempre se sia possibile. :bye:

risposto 11 anni fa
EKELON77
X 0 X

Qual'è il problema con il precedente script?  ???

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Il precedente script che mi hai fatto tu si realizza dei tag XML sottoforma di codice HTML e a video appare queste scritte:

2 Archivio Gestione Archivio ./gestarchivio.php

1 Novità Gestione Novità ./gestnews.php

3 Prossimamente Gestione Film in Uscita ./gestprossimamente.php

4 Games Gestione Videogiochi ./gestvideogames.php

che sono i valori contenuti nei campi della tabella come

idmenu = 2               

nome = Archivio

descr = Gestione Archivio

link = ./gestarchivio.php

ma non so come trattare questi dati, forse dovrei cercare di non far apparire nulla a video e creare un output su file utilizzando una funzione XML che salvi su file system; premetto che non so come fare le 2 attività. :-X

risposto 11 anni fa
EKELON77
X 0 X

Cosa dovresti fare di preciso con questo file XML?  ???

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Olte a questa domanda che fai tu che è molto corretta c'è nè un'altra che mi lascia perplesso ed è perchè l'output la funzione ECHO non la visualizza correttamente oppure è corretta che faccia così, tornando a alla tua questions questo XML mi serve per gestire un menu realizzato come applet java che noi utilizziamo abitualmente per i nostri prodotti.

Spero di essere stato abbastanza esauriente su cosa debbo farci. :angel: O0

risposto 11 anni fa
EKELON77
X 0 X

Chiariamo alcuni concetti:

un file XML potrebbe essere scritto tutto su di un'unica riga, senza nessun accapo. Non perderebbe di valenza. La sua sintassi impone un corretto ordine di apertura e chiusura dei tag, ma non vincola ad andare a capo o ad indentare i vari tag. Queste sono solo formattazioni che agevolano la lettura a noi comuni mortali... Un programma prende in pasto un file XML indipendentemente da come è formattato.

Quando tenti di visualizzare un file xml in un browser può succedere di tutto. A seconda del browser il risultato è doverso. RIcorda che un browser effettua il "rendering" di un file html (ciò che si aspetta di default) e quindi è normale che i tag non vengano rappresentati. Inoltre in qull'esempio manca l'intestazione del file XML. qualcosa del tipo <?XML VERSION="1.0"?>. Se ci fosse stata il browser avrebbe capito che si trattava di XML e avrebbe dato una rappresentazione migliore. Comunque questo non è il tuo scopo, visto che il file andrà letto da un programma.

Per verificare se il file XML così com'è va bene non devi far altro che far puntare la tua applet java alla pagina php che lo crea. Nell'applet sicuramente ci sarà una riga di codice che specifica il nome ed il percorso del file XML da caricare. Fai in modo che vada a prendere la pagina php, gli verrà inviato il file XML.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
modificato 11 anni fa
X 0 X

Purtroppo non è codice xml ma bensì una stringa formattata in un determinato modo che poi viene passata all'applet java.

Quindi per il momento resto in stand-by in attesa di nuovi sviluppi.

risposto 11 anni fa
EKELON77
modificato 11 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda