xml e php. Problema con i nodi

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Buonasera.

Dato questo file xml:

<prenotazioni>
<prenotazione>
<datainizio>2015-03-24</datainizio>
<datafine>2015-03-29</datafine>
<prenotazioneid>82179054</prenotazioneid>

<persone>
<persona>
<nome>Mario Rossi</nome>
<mail>[email protected]</mail>
<telefono>N/A</CustomerPhone>
</persona>

</persone>
<camere>
<camera>
<idcamera>82179054</idcamera>
<datainizio>2015-03-24</datainizio>
<datafine>2015-03-29</datafine>
<cameratipo>
<idtipo>53475</idtipo>
<descrizione>lorem ipsum</descrizione>
</cameratipo>
<nomepersona>Mario Rossi</nomepersona>
</camera>

</camere>

</prenotazione>
<prenotazione>
<datainizio>2015-03-24</datainizio>
<datafine>2015-03-29</datafine>
<prenotazioneid>82179054</prenotazioneid>

<persone>
<persona>
<nome>Mario Rossi</nome>
<mail>[email protected]</mail>
<telefono>N/A</CustomerPhone>
</persona>

</persone>
<camere>
<camera>
<idcamera>82179054</idcamera>
<datainizio>2015-03-24</datainizio>
<datafine>2015-03-29</datafine>
<cameratipo>
<idtipo>53475</idtipo>
<descrizione>lorem ipsum</descrizione>
</cameratipo>
<nomepersona>Mario rossi</nomepersona>
</camera>

</camere>

</prenotazione>
</prenotazioni>

Devo recuperare i valori e inserirli in una query...

Mi date qualche consiglio?

grazie a tutti
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
due cose,
inserisci all'inizio
PHP:
<?xml version="1.0" encoding="utf-8"?>
la seconda, è presente un errore
PHP:
 <telefono>N/A</CustomerPhone>
o è telefono o è CustomerPhone, correggi ed il browser ti visualizza il file xml
se ti serve poi come leggerlo, provo a sviluppare uno script
ciao
Marino
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
questo è lo script per leggere il tuo xml,
PHP:
<?php 

$xml = simplexml_load_file('prenotazioni.xml'); 

$nr_prenotazione = count($xml->prenotazione);
echo "<h3>nodi prenotazione nel file prenotazioni.xml (".$nr_prenotazione.")</h3>"; 

$i=0;
while ($i < $nr_prenotazione)
{
  echo "<hr> </hr>";
  $prenotazione = $xml->prenotazione[$i];

  echo "ID prenotazione: <b>" .$prenotazione->prenotazioneid ."</b><br />"; 
  echo "data inizio    : <b>" .$prenotazione->datainizio     ."</b><br />"; 
  echo "data fine      : <b>" .$prenotazione->datafine       ."</b><br />"; 

  $nr_persona = count($prenotazione->persone->persona);
  echo "<h4>nodi persona (".$nr_persona.")</h4>"; 

  $j=0;
  while ($j < $nr_persona)
  {
    $persona = $prenotazione->persone->persona[$j];

    echo "nome           : <b>" .$persona->nome."</b><br />"; 
    echo "mail           : <b>" .$persona->mail."</b><br />"; 
    echo "telefono       : <b>" .$persona->telefono."</b><br />"; 
    $j++; 
  }

  $nr_camera = count($prenotazione->camere->camera);
  echo "<h4>nodi camera (".$nr_camera.")</h4>"; 

  $j=0;
  while ($j < $nr_camera)
  {
    $camera = $prenotazione->camere->camera[$j];
    $cameratipo = $prenotazione->camere->camera->cameratipo[$j];

    echo "idcamera    : <b>" .$camera->idcamera       ."</b><br />";
    echo "data inizio : <b>" .$camera->datainizio     ."</b><br />";
    echo "data fine   : <b>" .$camera->datafine       ."</b><br />"; 
    echo "idtipo      : <b>" .$cameratipo->idtipo     ."</b><br />"; 
    echo "descrizione : <b>" .$cameratipo->descrizione."</b><br />"; 
    $j++; 
  }
  echo "<br />"; 
  $i++; 
}
?>
per essere sicuro, ho aggiunto qualche elemento al tuo xml originale e questo è il risultato della lettura
Cattura.PNG
ciao
Marino
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Ciao!!!
Grazie per la risposta..
Dopo lo provo. Una cosa: se all'interno di camera avessi una cosa del genere:

<camera>
<idcamera>82179054</idcamera>
<datainizio>2015-03-24</datainizio>
<datafine>2015-03-29</datafine>
<prezzogiorno>
<prezzo data="22/03/2015">60</prezzo>
<prezzo data="23/03/2015">60</prezzo>
<prezzo data="24/03/2015">80</prezzo>
</prezzogiorno>
<cameratipo>
<idtipo>53475</idtipo>
<descrizione>lorem ipsum</descrizione>
</cameratipo>
<nomepersona>Mario rossi</nomepersona>
</camera>

Come faccio a recuperarlo?
Considera che il tag prezzo è già presente ma a me basterebbe recuperare attributo e prezzo...

Grazie mille
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ti posto lo script modificato, è più pulito avendo sostituito i cicli while con foreach
ho inserito anche le righe con parametro
ciao
Marino
PHP:
<?php 

$xml = simplexml_load_file('prenotazioni.xml') or die("Errore: Non riesco a creare l'oggetto");; 

echo "<h3>nodi prenotazione nel file prenotazioni.xml (".count($xml->prenotazione).")</h3>"; 

foreach($xml->prenotazione as $prenotazione)
{
  echo "<hr> </hr>";

  echo "ID prenotazione: <b>" .$prenotazione->prenotazioneid ."</b><br />"; 
  echo "data inizio    : <b>" .$prenotazione->datainizio     ."</b><br />"; 
  echo "data fine      : <b>" .$prenotazione->datafine       ."</b><br />"; 

  echo "<h4>nodi persona (".count($prenotazione->persone->persona).")</h4>"; 

  foreach($prenotazione->persone->persona as $persona)
  {
    echo "nome           : <b>" .$persona->nome."</b><br />"; 
    echo "mail           : <b>" .$persona->mail."</b><br />"; 
    echo "telefono       : <b>" .$persona->telefono."</b><br />"; 
  }

  echo "<h4>nodi camera (".count($prenotazione->camere->camera).")</h4>"; 

  foreach($prenotazione->camere->camera as $camera)
  {
    $cameratipo = $camera->cameratipo;

    echo "idcamera    : <b>" .$camera->idcamera       ."</b><br />";
    echo "data inizio : <b>" .$camera->datainizio     ."</b><br />";
    echo "data fine   : <b>" .$camera->datafine       ."</b><br />"; 
    echo "idtipo      : <b>" .$cameratipo->idtipo     ."</b><br />"; 
    echo "descrizione : <b>" .$cameratipo->descrizione."</b><br />"; 

    foreach($camera->prezzogiorno->prezzo as $prezzo)
    {
      echo "<b>" . $prezzo['data'] . " - " . $prezzo . "</b><br>";
    }
  }
  echo "<br />"; 
}
?>
Cattura2.PNG
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Problema in PHP per invio file XML - RISOLTO- PHP 8
D [PHP] problema con xml PHP 13
M problema lettere accentate da file xml a php PHP 6
H Piccola applicazione per News con Php, Xml e Flash: problema ordinamento. XML 0
E problema php e xml PHP 2
B ciclare file xml con PHP PHP 1
P Rimozione automatica url da sitemap.xml con PHP PHP 1
P Modifica con PHP di un node in una sitemap xml PHP 0
E [PHP] creare temporary table per dati da xml PHP 2
S aggiornare valore di un elemento xml con php PHP 8
A [PHP] Prelievo dati da xml online. PHP 9
L [PHP] parsing xml PHP 1
P Importazione dati da file xml in db mysql con php PHP 17
F Parsing in PHP non legge tutto il file XML XML 2
cristoforo58 Stampare dei valori XML in PHP PHP 0
fabryx [PHP]RISOLTO: Parsing xml nodi con caratteri speciali PHP 1
L [php e xml] per creare una galleria fotografica con diversi file xml PHP 0
L [PHP] ordinare xml PHP 0
A Come mettere il target _blank in un parser xml in php? PHP 1
otto9due Accesso agli elementi <![CDATA[ ... ]]> di un file XML con SimpleXML e PHP PHP 2
Gioweb Output XML con PHP risultato vuoto PHP 2
asevenx visualizzazione dati in file xml tramite php PHP 2
K query per popolare una select tramite ajaxc php e xml ! Ajax 14
Monital PHP e XML PHP 1
neo996sps Non riesco a fare un parse XML con PHP PHP 1
bit77 Domanda! ho un file xml e devo estrapolare determinati testi, php è la soluzione? PHP 0
neo996sps [risolto] Usare PHP per leggere da file XML PHP 3
P Parser XML-PHP PHP 0
M Trasformare una pagina PHP caricata in un documento PDF o XML PHP 3
helpdesk Xml dinamico con php non legge i dati PHP 4
Sargon google maps java-xml-php-mysql Javascript 0
X Php + xml funzioni per lettura file Xml PHP 5
max_400 PHP e xml un esempio please? PHP 7
H Semplice CMS per news con PHP e XML PHP 3
P estrarre dati xml excel con php XML 1
L php e xml PHP 1
B includere file xml in file php PHP 1
F paginazione file xml tramite php PHP 1
helpdesk parsing xml/php PHP 1
I Leggere xml con dom in php PHP 3
A inserire nel codice php una stringa xml PHP 0
catellostefano [CERCO] Programmatore php e xml Offerte e Richieste di Lavoro e/o Collaborazione 4
P PHP e XML PHP 4
E area protetta con php ed xml PHP 1
S paginazione di xml con asp/php XML 2
T PHP + MySQL o PHP + XML? PHP 1
M Php e xml PHP 2
L Come carico in PHP un file xml e uno xsl? PHP 1
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
B Da XML a TXT x4 XML 0

Discussioni simili