PHP e XML

di il
3 risposte

PHP e XML

Salve a tutti ho problema che non mi fa dormire da un paio di giorni

1. invio dal client al server tramite una richiesta POST la stringa
<?xml version="1.0" encoding="UTF-8"?>
<gest>
<newTeam label="team 1">
<player label="player 1" code=""/>
<player label="player 2" code=""/>
<player label="player 3" code=""/>
</newTeam>
</gest>

2. sul server quando cerco di accedere ai nodi non avviene la lettura dei nodi. Lo faccio in questo modo:
$xmlstr = $_POST['dati'];
$xml = simplexml_load_string($xmlstr);
foreach($xml->newTeam as $name ){
echo "riga ".$name['label']."<br>";
}

In realtà sono un paio di giorni che ci provo in tutte le maniere ma il ciclo for non parte mai!
Ho fatto anche un echo $_POST['dati'] per vedere se la stringa arriva con qualche errore, ma niente echo $_POST['dati'] mi restituisce esattamente quello che invio!
Se provo a fare echo 'tipo: '.gettype($xml); mi da "tipo: boolean"

3 Risposte

  • Re: PHP e XML

    
    ...
    foreach($xml->newTeam->player as $name ){
    echo "riga ".$name['label']."<br>";
    }
    ...
    
  • Re: PHP e XML

    Mi dispiace ma non funziona!
    Non so se è un problema di impostazioni o meno.
    Io prendo la stringa da trasformare in xml dalla variabile $_POST['dati'], ma nel caso in cui io utilizzo una stringa creata sul file php allora mi funziona......
    esempio funzionante:
    
    $xmlstr = '<?xml version="1.0" encoding="UTF-8"?><gest><newTeam label="team 1"><player label="player 1" code=""/></newTeam></gest>';
    $xml = simplexml_load_string($xmlstr);
    foreach($xml->newTeam as $name ){
    echo "riga ".$name['label']."<br>";
    }
    esempio NON funzionante:
    
    $xmlstr = $_POST['dati']; 
    $xml = simplexml_load_string($xmlstr);
    foreach($xml->newTeam as $name ){
    echo "riga ".$name['label']."<br>";
    }
  • Re: PHP e XML

    OK FUNZIONA!!!
    Grazie mille per le risposte!

    Alla fine il problema era la mancanza di queste due righe:
    
    $xmlstr = htmlspecialchars_decode($xmlstr); 
    $xmlstr = stripslashes($xmlstr);
    
Devi accedere o registrarti per scrivere nel forum
3 risposte