Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[PHP/XML] Script lettura da file xml con errore.
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 26 Gen 2009 20:03    Oggetto: [PHP/XML] Script lettura da file xml con errore. Rispondi citando

Salve utenti.

Come potete leggere dal titolo, io, sotto la visione di un tutorial on-line ho scritto, per poter accedere ha un file xml tramite la dom document questa riga di codice PHP:
Codice:

<?php
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$root = $doc->DocumentElement;
$keywords = $root->getElementsByTagName('data');
foreach ($keywords as $kw) {
   echo "<strong>".htmlentities($kw->nodeValue)."</strong>";
}
?>

Ma al momento dell'eseguzione da parte del browser mi viene visualizzata questo errore:
Codice:

Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\Inetpub\wwwroot\prov\index.php on line 5


di cosa si tratta?
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 26 Gen 2009 21:12    Oggetto: Rispondi citando

il problema secondo me è:
Codice:

<?
...
$root = $doc->DocumentElement;
...
?>

Primo: la proprietà si chiama "documentElement" e non "DocumentElement", i metodi sono non case-sensitive ma le proprietà sì.
Secondo: non puoi accedere alla root se prima non la crei.
Per creare un documento xml devi fare:
Codice:

<?
  $doc=new DOMDocument();
  $root=$doc->createElement('root');  // qualunque tag va bene
?>

Il primo nodo creato è la root.
Ora puoi usare
Codice:

<?
  ...
  $nodo=$doc->documentElement;
?>

ma se stai creando un documento avrai di sicuro il nodo root già istanziato (vedi il codice precedente a questo) per cui ogni volta che vorrai aggiungere un nodo alla root dovrai fare quelche cosa del tipo:
Codice:

<?
...
  $node=$doc>createElement('nodo','5);  // creo un nodo "nodo" e ci metto il valore 5
  $root->appendChild($node);  // aggiungo a $root il nodo $node
...
?>

Tu però mi pare di capire che voglia accedere ad un file xml già pronto. In questo caso dovrai usare:
Codice:

<?
$doc = new DOMDocument();
$doc->load('/directory/directory1.../file.xml');
?>

Se vuoi avere un riferimento alla root allora qui userai
Codice:

<?
$root=$doc->documentElement;
?>

La guida ufficiale è abbastanza chiara quindi ti segnalo il link
C'è anche un thread che tratta l'xml qui

Ciao
Top
Profilo Invia messaggio privato
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 26 Gen 2009 22:11    Oggetto: Rispondi

freemind ha scritto:

C'è anche un thread che tratta l'xml qui


Lo so che ti può sembrare strano, ma mi erò dimenticato priprio di questo thread che avevo aperto.

cmq ti faro sapere se riesco a fare un xml tramite php e leggere tramite doc.

P.S. : ho risposto direttamente nel mio vecchio thread ansi che qui.
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi