2010-09-28 10 views
0


Je suis en train d'écrire tous les éléments ont chuté prperties dans un document XML pour enregistrer dans le database.When l'utilisateur supprimer un élément tombé, je dois retirer cet élément du Xml doc .supprimer des nœuds XML comme par entrée utilisateur

XmlDocument oXmlDocument = new XmlDocument(); 
    oXmlDocument.Load(@"D:\VanithaApps\SenMail\DiagramData.xml"); 
    Boolean nodeExits = false; 
    XmlNode oXmlRootNode = oXmlDocument.SelectSingleNode("records");  
    XmlNodeList xmlnode = oXmlDocument.GetElementsByTagName("record"); 

    if (delete=="1") 
    { 
     if (xmlnode.Count > 0) 
     { 
      for (int i = 0; i < xmlnode.Count; i++) 
      { 
       string tempVar = element.Substring(0, element.Length - 1); 
       if (xmlnode[i].ChildNodes[2].InnerText == tempVar) 
       { 
        try 
        { 
         oXmlRootNode.RemoveChild(xmlnode[i]); 
         goto Found; 
        } 
        catch(Exception ex) 
        { 
         ex.ToString(); 
        } 

       } 
      } 
     } 
    } 

    if (xmlnode.Count > 0) 
    { 
     for (int i = 0; i < xmlnode.Count; i++) 
     { 
      string tempVar = element.Substring(0, element.Length-1); 
      if (xmlnode[i].ChildNodes[2].InnerText == tempVar) 
      { 
       nodeExits = true; 
       XmlNode XAxis = xmlnode[i].ChildNodes[0]; 
       XAxis.InnerText = Convert.ToString(x); 

       XmlNode YAxis = xmlnode[i].ChildNodes[1]; 
       YAxis.InnerText = Convert.ToString(y); 
      } 

     } 
     if (nodeExits == false) 
      { 
       CreateNewNode(x, y, element, userid, oXmlDocument, oXmlRootNode); 

      } 
    } 

    else 
    { 
     CreateNewNode(x, y, element, userid, oXmlDocument, oXmlRootNode); 
    } 

    Found: 

    int result = 0; 
    return result; 

Je n'ai pas largement utilisé XML avant
<?xml version="1.0" encoding="utf-8"?> <records> <record> <X-Cordinate>774</X-Cordinate> <Y-Cordinate>173</Y-Cordinate> <Element>drag595</Element> <UserID>1</UserID> </record> </records>
je veux supprimer la valeur dont l'enfant « élément » est égal à tempVar.Here si la valeur est égale à l'élément drag595, je veux supprimer cette entrée de mon XML.

+0

Je ne suis pas sûr de ce que 'goto Found;' S'il vous plaît dites-moi que c'est une faute de frappe, sinon [un rapace vous manger] (http://xkcd.com/292/). – Tomalak

+0

goto Trouvé est comme casser dans le cas stmt – Vani

+0

Non. 'Goto' est totalement hors limites il n'y a aucune raison d'utiliser' goto', et vous ne devriez certainement pas le faire. – Tomalak

Répondre

0

changement

oXmlRootNode.RemoveChild(xmlnode[i]);//not working// 

à

xmlnode[i].ParentNode.RemoveChild(xmlnode[i]); 

Les enfants ne peuvent être enlevés de leurs parents respectifs.

+0

J'ai essayé le xmlnode [i] .ParentNode.RemoveChild (xmlnode [i]); et il ne fait rien, c'est y j'ai déménagé à .Removechild.PLease voir mon bloc de code entièrement édité ci-dessus. – Vani

Questions connexes