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

Bibliothèques et frameworks PHP Discussion :

[DOM] Suppression d'un n%u0153ud xml


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Par défaut [DOM] Suppression d'un n%u0153ud xml
    Bonjour,

    j'ai un problème sur mon code pour la suppression d'un noeud xml.
    voila le format du xml :

    Code XML : 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
    <hors_delai>
    	<value id='0'>
    		<contain>
    			<id>0</id>
    			<incident_id>I00101338</incident_id>
    			<primary_assignment>I_AGE_CLA-SAV-IBRD_SN1</primary_assignment>
    			<problem_status>Pending vendor</problem_status>
    			<open_time>02/07/08 14:37:28</open_time>
    		</contain>
    	</value>
    	<value id='1'>
    		<contain>
    			<id>1</id>
    			<incident_id>I00109408</incident_id>
    			<primary_assignment>I_AGE_CLA-OP-EXT-IBRD-CHA_SN1</primary_assignment>
    			<problem_status>Pending customer</problem_status>
    			<open_time>07/07/08 11:34:03</open_time>
    		</contain>
    	</value>
    </hors_delai>

    Et voila le code pour la suppression, je récupère l'ID en paramètre dans l'url de la page.

    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
    		$id = $_GET['id'];
     
    		$data = new DOMDocument();
    		$data->load('_xml/I'.$date.'.xml');
    		$parent = $data->getElementsByTagName('value');
    		for($i=0; $i<$parent->lenght; $i++){
    			$attr = $parent->item($i)->attributes;
    			for($j=0; $j<$attr->length; $j++){
    				if($attr->item($j)->nodeName == 'id' && $attr->item($j)->nodeValue == $id){
    					$element = $parent->item($i);
    				}
    			}
    		}
    		$racine = $data->documentElement;
    		$suppr = $racine->removeChild($element);
    L'erreur qu'il me met est :

    Catchable fatal error : Argument 1 passed to DOMNode::removeChild() must be an instance of DOMNode, null given in C:\wamp...
    Si quelqu'un a une idée ?

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Par défaut
    Salut, je ne sais pas si j'ai bien compris ce que tu veux faire mais je pense que cette portion feras l'affaire enfin j'espere !!

    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
     
    $data = new DOMDocument();
     
    $data->load('_xml/I'.$date.'.xml');
     
     
    		$racine = $data->documentElement;
     
    		$values = $data->getElementsByTagName('value');
     
    	foreach($values as $value )
            {
     
    		if( $value->getAttribute('id') == $id)
     
    		{
    			$racine->removeChild($value);
    	        }
     
    	}

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Par défaut
    Le code que tu m'as passé ne supprime pas le noeud ayant pour id celui passé en parametre dans l'url.
    En fait j'aimerais, si l'url ressemble à ceci : index.php?id=0

    supprimer tout ce qui a en gras ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <value id='0'>
    		<contain>
    			<id>0</id>
    			<incident_id>I00101338</incident_id>
    			<primary_assignment>I_AGE_CLA-SAV-IBRD_SN1</primary_assignment>
    			<problem_status>Pending vendor</problem_status>
    			<open_time>02/07/08 14:37:28</open_time>
    		</contain>
    	</value>

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Par défaut
    Bonjour,

    t'es sûr ?? je l'ai testé chez moi et je crois qu'il efface le nœud ayant pour nom "value" et pour attrinut le id = $id

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Par défaut
    Pourtant j'ai regardé dans le xml, le noeud y est toujours. il faut peut être sauvegarder le nouveau fichier.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Par défaut
    C'est bon c'étati bien ça, a la fin du code il faut rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data->save('cheminduxml.xml');
    et ca fonctionne. Merci.

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Par défaut
    Loll derien ce fut un plaisir !!

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

Discussions similaires

  1. [DOM]Suppression attribut html
    Par kobe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2006, 10h49
  2. [DOM] problème de génération d'un xml avec dom
    Par WalidNat dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 04/05/2006, 17h12
  3. [ASP][DOM] Récupérer les éléments d'un XML
    Par Tikate dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 03/05/2006, 11h51
  4. [DOM] - Suppression de noeud.
    Par jacquesh dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 11h34
  5. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/03/2003, 09h44

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