IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Suppression de noeud dans un fichier XML grace à php5


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut [AJAX] Suppression de noeud dans un fichier XML grace à php5
    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:
    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>
    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
    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) ;
    	  }
       }
     
    }
    ?>
    et enfin ma page de suppression pour le moment mais je n'arrive pas à aller plus loin, tout mes tests on était des échecs...
    note: - la fonction Calque créer simplement une <div>
    - la fonction Remplir sert à remplir la <div>

    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();
    ?>
    Je sèche complètement ! Après moultes essaies je n'y arrive vraiement pas
    Quelqu'un pourrait il m'aiguiller s'il vous plait?
    Merci beaucoup de votre aide !

    Kenshuri.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut
    J'avais omit de mettre ma fonction supprimer() dans la biblio peut être que ça vous aidera plus lol

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] Menage de certains noeuds dans mon fichier XML
    Par deadliff dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/08/2007, 16h21
  2. [DOM] Modifier un noeud dans un fichier XML
    Par erivoil dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/01/2007, 12h11
  3. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  4. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo