Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2007, 17h22   #1
Futur Membre du Club
 
Inscription : mai 2005
Messages : 114
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 114
Points : 17
Points : 17
Envoyer un message via MSN à helter_skelter
Par défaut [DOM] Erreur sur appendChild

Bonjour j'ai cette erreur
Fatal error: Call to a member function appendChild() on a non-object au niveau de ERROR

je ne comprend pas d'ou cela peut venir?

merci d'avance


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
	function createNewXML(){
		// Création du fichier en mémoire 
		$file = new DOMDocument("1.0");
 
		// Création du noeud racine
		$racine = $file->createElement("rss"); //On crée l élément racine
		$racine->setAttribute("version", "2.0"); //On lui ajoute l attribut version (2.0)
		$racine = $file->appendChild($racine); //On insère la racine dans le document
 
		// Création du noeud channel 
		$element_channel = $file->createElement("channel");//On crée un élément channel
		$element_channel->setAttribute("id", "news"); //On donne un attribut id à notre channel
		$element_channel = $racine->appendChild($element_channel);//On ajoute cet élément à la racine
 
		// Création du noeud description 
		$element_description = $file->createElement("description");//On crée un élément description
		$element_description = $element_channel->appendChild($element_description);//On ajoute cet élément au channel
 
		// Création du texte pour le noeud description 
		$texte_description = $file->createTextNode("Channel de l'ismans"); //On crée un texte
		$texte_description = $element_description->appendChild($texte_description); //On insère ce texte dans le noeud description
 
		// Création du noeud link et ajout du texte à l élément 
		$element_link = $file->createElement("link");
		$element_link = $element_channel->appendChild($element_link); 		
    $texte_link = $file->createTextNode("http://localhost/");
		$texte_link = $element_link->appendChild($texte_link);
 
		// Création du noeud title et ajout du texte à l élément 
		$element_title = $file->createElement("title");
		$element_title = $element_channel->appendChild($element_title);
		$texte_title = $file->createTextNode("Le flux RSS de l'ismans");
		$texte_title = $element_title->appendChild($texte_title);
 
		//On retourne le fichier XML
  	return $file;
 
	}
 
	function addOneNews($file, $titre, $date_ajout, $auteur,$description){
 
 
		//On récupère le channel
    $element_channel = $file->getElementById("news");
 
		// Création du noeud item
		$element_item = $file->createElement("item");
  	ERROR->$element_item = $element_channel->appendChild($element_item);
 
		// Création du noeud title et ajout du texte à l élément 
		$element_title = $file->createElement("title");
		$element_title = $element_item->appendChild($element_title);
		$texte_title = $file->createTextNode($titre);
		$texte_title = $element_title->appendChild($texte_title);
 
		// Création du noeud link et ajout du texte à l élément 
		$element_desc = $file->createElement("description");
		$element_desc = $element_item->appendChild($element_desc);
		$texte_desc = $file->createTextNode($description);
		$texte_desc = $element_desc->appendChild($texte_desc);
 
		// Création du noeud pubDate et ajout du texte à l élément 
		$element_date = $file->createElement("pubDate");
		$element_date = $element_item->appendChild($element_date); 		
    $texte_date = $file->createTextNode($date_ajout);
		$texte_date = $element_date->appendChild($texte_date);
 
		// Création du noeud author et ajout du texte à l élément 
		$element_auteur = $file->createElement("author");
		$element_auteur = $element_item->appendChild($element_auteur);
		$texte_auteur = $file->createTextNode($auteur);
		$texte_auteur = $element_auteur->appendChild($texte_auteur);
 
	}
helter_skelter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 17h36   #2
Invité de passage
 
Inscription : juin 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 8
Points : 3
Points : 3
Salut,
je dirai que tu dois signaler l'attribut ID comme étant un identifiant pour que getElementById marche :
Code :
$element->setIdAttribute('id',true);
cependant cette méthode n'est disponible que depuis php 5.2 ou 5.1 me semble-t'il (à vérifier).
sinon l'autre solution est de définir cet attribut comme 'xml:id' qui d'après la spec XML définit un identifiant même si celui-ci n'est pas définit comme identifiant par le schema XML utilisé.
bon courage !
chmouette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h27.


 
 
 
 
Partenaires

Hébergement Web