begin process at 2010 02 10 03:05:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

.NET

 > 

Suppression de noeud XML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Suppression de noeud XML

dimanche 19 juin 2005 à 15:17:54 | Suppression de noeud XML

emachede


bonjour,

je veux supprimer un noeud bien précis dans mon xml
j'utilise la commande:
objRoot.RemoveChild(monNoeud);
avec objRoot = objXmlDoc.DocumentElement;
et monNoeud le noeud à supprimer

j'ai vérifier au déboguage, les deux noeuds (racine et à supprimer) sont les bons
le probleme: tous les noeuds fils du noeud racine sont supprimés, sans distinctions.

comment y remédier? merci
dimanche 19 juin 2005 à 15:58:48 | Re : Suppression de noeud XML

coq

Administrateur CodeS-SourceS
Salut,

Tu pourrais montrer le bout de code qui effectue la suppression ainsi que du xml utilisé ?



Cocoricoooooooo !!!!
coq
MVP Visual C#
dimanche 19 juin 2005 à 18:25:49 | Re : Suppression de noeud XML

emachede

voici le xml:
<?xml version="1.0" encoding="utf-8"?>
<data>
  <restants>
    <emploi>12</emploi>
    <taxe>25.3</taxe>
    <notes>annotations....</notes>
  </restants>
<Intercontrat>
    <debut>09/08/2005 00:00:00</debut>
    <fin>26/08/2005 00:00:00</fin>
  </Intercontrat>
</data>

public void SupprimerNoeud(string nomNoeudCible)
        {
             //on recupere le 1er noeud fils du noeud racine du xml
            XmlNode noeudEnfant = InitialiserXml();

            if(objRoot.ChildNodes.Count!=0)
            {
                //futur noeud sélectionné
                XmlNode monNoeud =  noeudEnfant;
           
                //Parcourt l'ensemble des noeuds jusqu'à trouver le bon
                foreach (XmlNode monN in noeudEnfant.ChildNodes)
                {
                    if(monN.Name.Equals(nomNoeudCible))
                    monNoeud = monN;
                }
               
                // Suppression du noeud
                objRoot.RemoveChild(monNoeud);
                // Sauvegarde du document
                objXmlDoc.Save(strXmlPath);  
            }
               
        }

voilou les codes
merci de ton aide
dimanche 19 juin 2005 à 19:14:35 | Re : Suppression de noeud XML

coq

Administrateur CodeS-SourceS
Hum
Tu veux faire quoi au juste ?
J'ai essayer ton code : quand on lui demande de supprimer le noeud "restants" c'est bon, par contre si on lui demande de supprimer le noeud "Intercontrat" il supprime le noeud "restants" et laisse "Intercontrat".



Cocoricoooooooo !!!!
coq
MVP Visual C#
dimanche 19 juin 2005 à 20:52:30 | Re : Suppression de noeud XML

emachede



il faut supprimer uniquement le noeud spécifié
a priori d'après ce que tu me dis, il supprime tjrs le meme!

dimanche 19 juin 2005 à 21:37:23 | Re : Suppression de noeud XML

coq

Administrateur CodeS-SourceS
Oui, déjà là tu as un problème.

Sinon si ton fichier à toujours la même structure et que tu dois supprimer des éléments enfants de data une solution de ce genre peut faire l'affaire :

// création de l'expression
StringBuilder xPath = new StringBuilder();
xPath.AppendFormat("/data/{0}", nomNoeudCible);
// récupération du noeud
XmlNode node = m_xmlDoc.DocumentElement.SelectSingleNode(xPath.ToString());
// suppression
node.ParentNode.RemoveChild(node);


A confirmer par un habitué du xml :-)


Cocoricoooooooo !!!!
coq
MVP Visual C#
lundi 20 juin 2005 à 11:41:15 | Re : Suppression de noeud XML

emachede



le node prend une valeur non définie lors du SelectSingleNode()
alors que le xpath est juste!
il ne trouve donc pas le noeud Intercontrat alors que dans le xml il est bien présent
lundi 20 juin 2005 à 21:03:42 | Re : Suppression de noeud XML

coq

Administrateur CodeS-SourceS
C'est justement avec ce noeud là que j'avais tester...



Cocoricoooooooo !!!!
coq
MVP Visual C#
mardi 21 juin 2005 à 10:31:51 | Re : Suppression de noeud XML

emachede



et ça marche chez toi, ou ça vient de chez moi?
mardi 21 juin 2005 à 11:11:05 | Re : Suppression de noeud XML

emachede

Réponse acceptée !
ça y est j'ai trouvé
j'ai fait un mix de ton code et du mien. rien de tel ! ;-)

XmlNode node = objXmlDoc.DocumentElement.SelectSingleNode("Intercontrat1");
objRoot.RemoveChild(node);
objXmlDoc.Save(strXmlPath);

avec objRoot = objXmlDoc.DocumentElement; et objXmlDoc= new XmlDocument();

voilou
merci de ton aide coq!




Cette discussion est classée dans : supprimer, suppression, xml, noeud, objroot


Répondre à ce message

Sujets en rapport avec ce message

Xml Supprimer un noeud [ par Zeuth ] Voila j'aimerai supprimer un noeud dans mon fichier xml Fichier XML : Users>      Geogeo        <U supprimer un noeud XML [ par user_two ] slt! j'ai pti problem à la suppression d'un noeud je veux supprimer le noeud lorsque sa valeur est null voici par exemple     zazaz     1 Supprimer noeuds spécifiques XML [ par Jojo092 ] Bonjour, je ne sais pas si le sujet a déjà été abordé, mais je n'ai pas trouvé de solution à mon problème. Bref, j'ai un fichier xml de ce type récup [c#/xml] Trouver un noeud avec un attribut particulier : Est-ce possible avec SelectSingleNode ? [ par Likilik ] Bonjour, J'ai un fichier xml dont voici un extrait :       xxxx  & Suppression attribut [ par mastereur ] Bonjour,je souhaite supprimer un attribut à un n½ud.Dans mon cas je souhaite supprimer l'attribut 'requirePermission'dans le n½ud suivant: (exemple) c xml [ par verbeyst ] Bonjour,Je voudrais  arriver à obtenir les fonctionalités suivantes:1/lire le contenu d'un fichier xml2/l'afficher dans un contrôle treeview3/ cliquer Ajouter une liste de noeud dans un XML [ par virgul ] Bonjour,Voila j'aimerais bien savoir quelle est d'après vous le meilleur moyen d'ajouter une liste de noeud dans un noeud contenu dans un autre XmlDoc ParserXML/Acceder à un noeud précis [ par issousam ] Bonjour,J'ai un problème au niveau de l'accés à un noeud de mon fichier XML...En effet, mon fichier se structure de la facon suivante : <span style="C Création d'un noeud Xml à partir de rien [ par cfz ] Bonjours, je travail sur un document Xml sur lequel j'ai besoin d'ajouter de nouveaux noeuds. Je voulais faire XmlNodeLoc.AppendChild(newNode)mais le XML effacer un noeud grace a la valeur de son attribut [ par agarcia_01 ] Bonjour, j'ai un petit probleme de comprehension au niveau de la supression d'un noeud XML . J'enregistre des conversation dans un fichier XML et je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales