@§ifodia§ said:
Ciao a tutti,
sono nuovo del forum e spero di scrivere nella sezione corretta.
Ho un problema con la lettura di più file xml. Devo trovare un modo per far sì che in php venga letto solo la prima parte dell'XML. Mi spiego meglio...
Ho diversi xml nel quale sono contenute diverse informazioni. Vorrei estrapolare da ognuno solo la prima parte(che sarebbe quella più aggiornata). Per ora ho trovato solo questo esempio che calza a pennello, ma non funziona con tutti i file, perchè ovviamente i tag possono essere diversi:
><?PHP
$quanti = 5;
$indice = 256;
$contatore = 0;
$apri_xml = fopen("database.xml", 'r');
while(!feof($apri_xml)) {
$buffer = ltrim(Chop(fgets($apri_xml, $indice)));
if (($buffer == "<utente>") && ($contatore < $quanti)) {
$nome = ltrim(Chop(fgets($apri_xml, $indice)));
$cognome = ltrim(Chop(fgets($apri_xml, $indice)));
$nome = ereg_replace( "<nome>", "", $nome );
$nome = ereg_replace( "</nome>", "", $nome );
$nome = ereg_replace( "\"", "\\\"", $nome );
$cognome = ereg_replace( "<cognome>", "", $cognome );
$cognome = ereg_replace( "</cognome>", "", $cognome );
echo($nome . " " . $cognome . "<br>");
$contatore++;
}
}
?>
>```
Qualcuno può aiutarmi?
Grazie
Ho risolto!!!! Grazie comunque!
Se potesse interessare a qualcuno:
[PHP]
$xml = simplexml_load_file("percorso file xml");
$contatore = 0;
$quanti = 1;
foreach($xml->children() as $child){// partirà dal tag InizioXML
if ($contatore < $quanti){
foreach($child->children() as $child2){
if ($child2->getName() == "Nome"){
$string1 = $child2;
}
if ($child2->getName() == "Cognome"){
$string2 = $child2;
}
......ecc
}
$contatore++;
}
[/PHP]
In pratica un ciclo per ogni nodo da visualizzare con una if per limitare la visualizzazione a una sola volta.
Per eventuali chiarimenti scrivetemi pure.
Saluti