Lettura file XML

mrz8589

Nuovo Utente
1 Ott 2009
6
0
1
Ciao a tutti

Dovrei leggere (con PHP4) un file XML con la struttura allegata per ottenere in output:
nome , cognome , indirizzo
nome , cognome , indirizzo



<?xml version="1.0"?>
<database>
<utente>
<nome>Luca</nome>
<cognome>Ruggiero</cognome>
<indirizzo><![CDATA[Via dell'utente1]]></indirizzo>
</utente>
<utente>
<nome>Max</nome>
<cognome>Bosco</cognome>
<indirizzo><![CDATA[Via dell'utente2]]></indirizzo>
</utente>
</database>
 

mrz8589

Nuovo Utente
1 Ott 2009
6
0
1
Ho dato un'occhiata all'indirizzo che mi hai consigliato, ho provato a far girare sul mio server il codice di lettura

PHP:
<?php
  $objDOM = new DOMDocument();
  $objDOM->load("area4.mdb.xml");

  $rec = $objDOM->getElementsByTagName("RECORD");

  foreach ($rec as $value) {
      $ids = $value->getElementsByTagName("A083");
      if ($ids->item(0) != NULL) {
          $id = $ids->item(0)->nodeValue;
          echo "A083: $id <br/>";
      }
  }
?>

ma mi da errore sulla riga:
$id = $ids->item(0)->nodeValue;

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /web/htdocs/www....../letturaxml.php on line 10

invece, con quest'altro codice leggo tutto tranne il campo con CDATA
<indirizzo><![CDATA[Via dell'utente1]]></indirizzo>

PHP:
<?PHP
$quanti = 5;
$indice = 256;
$contatore = 0;

$apri_xml = fopen("database1.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)));
$indirizzo = ltrim(Chop(fgets($apri_xml, $indice)));

echo($nome . " " . $cognome . " " . $indirizzo . "<br>");

$contatore++;
}
}

fclose($apri_xml);
?>

ottengo:

Luca Ruggiero
Max Bosco

manca il campo indirizzo.
Come posso fare a leggere anche il campo con CDATA
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Ho dato un'occhiata all'indirizzo che mi hai consigliato, ho provato a far girare sul mio server il codice di lettura

PHP:
<?php
  $objDOM = new DOMDocument();
  $objDOM->load("area4.mdb.xml");

  $rec = $objDOM->getElementsByTagName("RECORD");

  foreach ($rec as $value) {
      $ids = $value->getElementsByTagName("A083");
      if ($ids->item(0) != NULL) {
          $id = $ids->item(0)->nodeValue;
          echo "A083: $id <br/>";
      }
  }
?>

ma mi da errore sulla riga:
$id = $ids->item(0)->nodeValue;

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /web/htdocs/www....../letturaxml.php on line 10

...

Scusa, ma hai fatto girare esattamente il codice che hai postato? Senza modificare il documento da caricare ed i tagname?

PHP:
<?php
  $objDOM = new DOMDocument();
  $objDOM->load("database1.xml");

  $rec = $objDOM->getElementsByTagName("utente");

  foreach ($rec as $value) {
		$nome = "";
		$cognome = "";
		$indirizzo = "";

	  $ele_nome = $value->getElementsByTagName("nome");
	  if ($ele_nome->item(0) != NULL) {
	  	$nome  = $ele_nome->item(0)->nodeValue;
	  }
	  $ele_cognome = $value->getElementsByTagName("cognome");
	  if ($ele_cognome->item(0) != NULL) {
	  	$cognome  = $ele_cognome->item(0)->nodeValue;
	  }
	  $ele_indirizzo = $value->getElementsByTagName("indirizzo");
	  if ($ele_indirizzo->item(0) != NULL) {
	  	$indirizzo  = $ele_indirizzo->item(0)->nodeValue;
	  }

		echo $nome." ".$cognome." - ".$indirizzo."<br/>";	  
  }
?>

A me così funziona.
 
Ultima modifica:

mrz8589

Nuovo Utente
1 Ott 2009
6
0
1
grazie Satifal


Ho provato sul mio server (su Aruba con PHP4) ma continua a darmi questo errore:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /web/htdocs/www......test1/letturaxml.php on line 14

sulla linea: $nome = $ele_nome->item(0)->nodeValue;


Il problema potrebbe essere legata alla versione di PHP (PHP Version 4.4.9), oppure dovrei modificare qualche impostazione?
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Credo dipenda dalla versione di PHP. Io ho fatto le prove con la 5.1.2. Se utilizzi la 4 puoi vedere QUI. Non dovrebbe essere difficile guardando un po' di esempi.
Comunque Aruba supporta PHP5, se non hai motivi o necessità particolari dal pannello di controllo puoi passare dalla versione 4 alla versione 5 di PHP.
 

mrz8589

Nuovo Utente
1 Ott 2009
6
0
1
Dal pannello di controllo del sito ho cambiato versione del php utilizzabile dal server (sono passato dalla 4.5 alla 5.2) ed è tutto ok.

Grazie satifal
 
Discussioni simili
Autore Titolo Forum Risposte Data
Emix Lettura file XML PHP 1
X Php + xml funzioni per lettura file Xml PHP 5
LaKanka Problema lettura file feed xml PHP 2
Gabriele15497514 php testo errato durante la lettura del file txt quando lo script viene eseguito contemporaneamente PHP 3
M Non corretta lettura del file php.ini della sezione CLI PHP 3
P [Javascript] Array da file di testo, con lettura temporizzata senza refresh Javascript 3
O [Java] Lettura da JSON File Java 0
A App inventor Lettura file di testo e ceazione listpicker Sviluppo app per Android 0
M Lettura file esterno via ajax jQuery 3
J [Javascript] Lettura file di testo (.txt) Javascript 1
R Accesso Multiutente a file in lettura/scrittura PHP 5
R Lettura file di testo (file in locale) Javascript 0
A lettura file Java 2
R lettura dati in tempo reale da file di testo PHP 2
V scrittura lettura su file PHP 2
M Lettura file di testo sequenziale ... Javascript 1
P Lettura dati se corretti scrivo su file.txt PHP 2
micio86 Lettura file remoti PHP 0
D caricamento e lettura file con revisione PHP 4
SolidSnake4 Problemi lettura file csv PHP 5
S Consiglio sito web per lettura di un file di testo che si aggiorna ogni secondo Javascript 9
F Lettura automatica di un file PHP 2
A [Java] J2ME(NetBeans) lettura dati file txt Java 5
S Lettura dati da un file esterno Flash 0
R lettura file rtf con testo colorato e stampa a video PHP 1
M lettura da file e tabulazione PHP 9
E Problema con la lettura di un file di testo Classic ASP 3
F problema php scrittura e lettura file PHP 2
Z problema lettura/scritture file txt PHP 11
mptech problemi lettura file pdf PHP 0
M java lettura scrittura file con j2me Java 0
D lettura file fino al carattere scelto ! PHP 1
F Lettura "input number" dinamico PHP 4
E Errore di lettura php in html PHP 8
E lettura da un Database con Javascript jQuery 2
G lettura stringa alfanumerica MySQL 0
D Lettura output da json su php PHP 4
max1974 Lettura Risultato $.ajax Javascript 1
R javascript lettura css cross-browser Javascript 1
Zio Crick Windows 8.1 accede ai NAS solo in lettura Windows e Software 0
T php Lettura files contenuti in una cartella PHP 1
M [PHP] Checkbox: inserimento nel db e lettura dal db PHP 20
M Come rendere solo lettura campo textarea PHP 2
M errore lettura data nel mysql con funzione Where PHP 1
I estensioni del server di Frontpage e lettura database Classic ASP 18
Recover db in sola lettura su area riservata WordPress 1
C PHP lettura db Access PHP 0
P Problema con lettura filesystem del client da server! Upload multiplo foto. PHP 5
R Lettura codice a barre tramite php e pistola PHP 2
G Problema lettura textarea da servlet Java 2

Discussioni simili