Ciao a tutti,

spero di aver beccato la sezione giusta del forum

Ho un file xml tipo questo

<CATALOGO>
<PRODOTTI>
<PRODOTTO>
<ID>1</ID>
<NOME>Casco</NOME>
<IMMAGINE>
<IMMAGINE1>...../casco.jpg</IMMAGINE2>
<IMMAGINE2>...../casco2.jpg</IMMAGINE2>
</IMMAGINE>
<CARATTERISTICHE>
<CARATTERISTICA nome="PRODUTTORE">blabla</FEATURE>
<CARATTERISTICA nome="MODELLO">SENZA VISIERA</FEATURE>
</CARATTERISTICHE>
</PRODOTTO>
</PRODOTTI>
</CATALOGO>

E sto cercando d'importarlo tramite una funzione php nel mio DB.

Tutto ok per quanto riguarda i campi semplici tipo ID e NOME...sto uscendo pazzo invece per importare solo IMMAGINE1 o IMMAGINE2 ed il valore della caratteristica PRODUTTORE (cioè nel mio DB vorrei finisse blabla)

Questo è il codice php che sto utilizzando per importare i campi ID e NOME

$file = $_FILES['filexml'];
$xml = simplexml_load_file($file['tmp_name']);
$listprodotti = $xml->prodotti;
foreach ($listprodotti->prodotto as $prodotto)

{

//Read Info Product
$id = $prodotto->ID;
$name = $prodotto->NOME;


QUALCUNO PUO' AIUTARMI???



Originariamente inviato da step86
Ciao a tutti,

volevo chiedere se era possibile leggere tramite php solo una parte del file xml.

Il mio xml è strutturato all'incirca così:

<?xml version="1.0"?>
<database>
<utente>
<nome>Luca</nome>
<cognome>Ruggiero</cognome>
</utente>
<utente>
<nome>Max</nome>
<cognome>Bossi</cognome>
</utente>
<utente>
<nome>Marco</nome>
<cognome>Rossi</cognome>
<indirizzo>via italia 50</indirizzo>
</utente>
</database>

Io ho trovato solo questo esempio che funziona bene e mi stampa i primi 5 :

<?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 . "
");

$contatore++;
}
}

fclose($apri_xml);
?>

Dato che alcuni file hanno dei tag in più...esiste un modo(magari con un ciclo) che mi permetta di stampare sempre i primi 5 anche non conoscendo i tag all'interno del file?

Grazie