Naviguer fichier xml avec c#

Résolu
melar Messages postés 90 Statut Membre -  
melar Messages postés 90 Statut Membre -
Bonjour,
j'essaie de pouvoir insérer des données dans un fichier xml mais à l'endroit où je le désire.
Cependant, ça ne fonctionne pas.
Voici mon code:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"c:\fichiertype.xml");

XmlElement elmtEnfant = xmlDoc.CreateElement("ElementEnfant");
elmtEnfant.InnerText = "Valeur";

xmlDoc.InsertAfter(elmtEnfant,xmlDoc.SelectSingleNode("/compilation/mp3/titre").NextSibling);

Donc ce code est censé inséré un noeud <ElementEnfant>Valeur</ElementEnfant> après le noeud <titre>
Seulement, j'ai une erreur: "Le noeud de référence n'est pas un enfant de ce noeud".

Pourquoi cet erreur ?
Si vous avez d'autres propositions pour naviguer dans un fichier xml (mettre les données où l'ont veut, merci de me le faire savoir.
Configuration: Windows XP
Firefox 2.0.0.12

6 réponses

  1. ppmax Messages postés 312 Statut Membre 244
     
    et bien tes noeuds tu les as avec
    XmlNodeList lstIndex = xmlIndex.GetElementsByTagName("NOEUD");
    ///parcours:
    foreach(XmlNode noeud In XmlNodeList )
    {
    if...

    }
    7
  2. ppmax Messages postés 312 Statut Membre 244
     
    euh pourquoi je peux pas en récupérer la valeur, j'ai tout ce qu'il me faut :
    if (noeud.Name == "NOEUD" && noeud.Attributes["NAME"].Value == "nomdemonnoeud")
    {
    noeud.AppendChild(nouveaunoeud);
    }
    6
  3. ppmax Messages postés 312 Statut Membre 244
     
    salut, je ne fais pas comme ça pour naviguer dans mon fichier xml
    je cherche d'abord les noeuds pouvant correspondre avec :
    XmlNodeList lstIndex = xmlIndex.GetElementsByTagName("NOEUD");
    ensuite je test les noeuds qu'il m'a renvoyer
    et si c'est le bon, je fais un
    noeud.AppendChild(nouveaunoeud);
    0
  4. melar Messages postés 90 Statut Membre 31
     
    Euh...je capte pas trop.
    Comment fais tu référence au noeud que tu as recherché lorsque tu ajoutes ?
    Comment fait tu le test étant donné que tu ne peux pas en récupérer la valeur ?

    Un autre truc qui m'a soulé, c'est que j'arrive a récupérer le nom des noeuds, mais jamais leur valeur.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. melar Messages postés 90 Statut Membre 31
     
    Nan mais t'es bien d'accord avec moi que pour faire ton "if", il faut d'abord pouvoir parcourir tout les noeuds ?
    C'est ça que je cherche.
    0
  7. melar Messages postés 90 Statut Membre 31
     
    Merci, ton code marche à la perfection. Je comprends vraiment pas comment j'ai pu passer à côté de ça.
    0