Precedente :: Successivo |
Autore |
Messaggio |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 26 Gen 2009 20:03 Oggetto: [PHP/XML] Script lettura da file xml con errore. |
|
|
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 |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 26 Gen 2009 21:12 Oggetto: |
|
|
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 |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 26 Gen 2009 22:11 Oggetto: |
|
|
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 |
|
 |
|