Bonjour à tous.
Je suis arriver à un point où je butte complètement.
J'appel à l'aide !
Je souhaite supprimer un noeud d'un fichier XML sur une page ou je récupère les éléments <title> à l'aide d une boucle. Puis grâce à un lien html j'aimerais qu'avec un onclick cela supprime l'item parent.
Pour cela j'ai:
le fichier xml qui se présente comme ca:
Affin de supprimer une de ces news j'ai une bibliothèque de fonction, avec, pour la suppression, dans un fichier XML.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="ISO-8859-1"?> <rss version="0.91"> <channel> <item> <title>Titre de ma news 1</title> <description>Contenu de ma news</description> <link>Lien facultatif</link> <pubDate>Date de publication</pubDate> </item> <item> <title>Titre de ma news 2</title> <description>Contenu de ma news 2</description> <link>Lien facultatif</link> <pubDate>Date de publication</pubDate> </item> <item> <title>Titre de ma news 3</title> <description>Contenu de ma news 3</description> <link>Lien facultatif</link> <pubDate>Date de publication</pubDate> </item> </channel> </rss>
et enfin ma page de suppression pour le moment mais je n'arrive pas à aller plus loin, tout mes tests on était des échecs...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php class Xml { //--- propriétés --- private $dom ; // objet dom pour parser le document xml private $noeud ; // nom du noeud actuellement parcouru private $item ; // item actuel private $num ; // numero de l'item correspondant au noeud parcouru private $eob ; // fin de parcourt du noeud private $nomficxml="" ; // nom du fichier xml private $chaineXML ; // nom de la chaine XML //--- constructeur --- public function Xml ($chaineXML="") { $this->dom = new DomDocument(); if ($chaineXML != "") { $this->chaineXML = $chaineXML ; $this->dom->loadXML($chaineXML); } } //--- chargement d'un fichier XML --- public function recupFic ($nomficxml) { $this->nomficxml = $nomficxml ; $this->dom->load($nomficxml); } //--- positionnement sur le premier noeud d'un nom précis --- public function premier ($item) { $this->noeud = $this->dom->getElementsByTagName($item) ; $this->num = -1 ; $this->item = $item ; $this->eob = false; $this->suivant () ; } //--- lecture du noeud suivant --- public function suivant () { $this->num++ ; $this->eob = ($this->noeud->item($this->num)==null) ; } //--- récupération de l'information contenue dans un noeud --- public function info ($noeud) { return $this->noeud->item($this->num)->getElementsByTagName($noeud)->item(0)->firstChild->nodeValue ; } //--- enregistrement dans un fichier XML --- public function eob () { return $this->eob; } //--- suppression d'un noeud --- public function supprimer () { $element = $this->noeud->item($this->num) ; $result = $this->dom->documentElement->removeChild($element); $this->sauve () ; } //--- enregistre le nouveau dom dans le fichier ou le document --- public function sauve () { if ($this->nomficxml != "") { $this->dom->save($this->nomficxml) ; } else { $this->dom->saveXML($this->chaineXML) ; } } } ?>
note: - la fonction Calque créer simplement une <div>
- la fonction Remplir sert à remplir la <div>
Je sèche complètement ! Après moultes essaies je n'y arrive vraiement pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php //creation d'un calque pour afficher les news à supprimer $supprnews = new Calque ($id="suppr_news", $left=390, $top=20, $width=375, $height=450, $align="left", $centre=false, $image, $color="", $deplace=false, $redim=false, $efface=false, $visible=true ); $xmlNews = new XML(""); $xmlNews -> recupFic($ficNews); $contenusupprnews = "<span class='normalblanc' style='display: block ;margin-left: 10px;'>"; $contenusupprnews .= "<span style='display: block ;margin: 12px 0 0 0; text-align: center; '>Supprimer une news:<br /></span>"; $xmlNews -> premier ("item"); while (!$xmlNews->eob()) { $contenusupprnews .= "<strong>".$xmlNews->info("title")."</strong>"." -> <a href='#' onclik=''>Supprimer cette news X</a><br />" ; $contenusupprnews .= "<br /><br />"; $xmlNews -> suivant ("item"); } $contenusupprnews .= "</span>"; $supprnews ->Remplir($contenusupprnews); $total .= $supprnews->getComplet(); ?>
Quelqu'un pourrait il m'aiguiller s'il vous plait?
Merci beaucoup de votre aide !
Kenshuri.
Partager