How to remove an xml element from file?

后端 未结 3 456
攒了一身酷
攒了一身酷 2020-11-29 12:01

In an XML file such as :


 
   
   code goes here
   
 

          


        
相关标签:
3条回答
  • 2020-11-29 12:50

    You could try something like this:

    string xmlInput = @"<Snippets>
     <Snippet name=""abc"">
       <SnippetCode>
       code goes here
       </SnippetCode>
     </Snippet>
    
     <Snippet name=""def"">
       <SnippetCode>
       code goes here
       </SnippetCode>
     </Snippet>
    </Snippets>";
    
    // create the XML, load the contents
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xmlInput);
    
    // find a node - here the one with name='abc'
    XmlNode node = doc.SelectSingleNode("/Snippets/Snippet[@name='abc']");
    
    // if found....
    if (node != null)
    {
       // get its parent node
       XmlNode parent = node.ParentNode;
    
       // remove the child node
       parent.RemoveChild(node);
    
       // verify the new XML structure
       string newXML = doc.OuterXml;
    
       // save to file or whatever....
       doc.Save(@"C:\temp\new.xml");
    }
    
    0 讨论(0)
  • 2020-11-29 12:53
    XDocument doc = XDocument.Load("input.xml");
    var q = from node in doc.Descendants("Snippet")
        let attr = node.Attribute("name")
        where attr != null && attr.Value == "abc"
        select node;
    q.ToList().ForEach(x => x.Remove());
    doc.Save("output.xml");
    

    .Net 2.0

    XmlDocument doc = new XmlDocument();
    doc.Load("input.xml");
    XmlNodeList nodes = doc.SelectNodes("//Snippet[@name='abc']");
    

    Now you have the nodes whose attribute name='abc', you can now loop through it and delete

    0 讨论(0)
  • 2020-11-29 12:54
      XElement xEmp = XElement.Load(@"C://Users//Khulu//Documents//Visual Studio 2012//Projects//AMD//Schedule//ToDo.xml");
                //
                xEmp.Add(
                         new XElement("ToDo",
                          new XElement("Item", item),
                           new XElement("date", date),
                            new XElement("time", time),
                            new XElement("due", due),
                            new XElement("description", description))
                );
                xEmp.Save(@"C://Users//Khulu//Documents//Visual Studio 2012//Projects//AMD//Schedule//ToDo.xml");`  XElement xEmp = XElement.Load(@"C://Users//Khulu//Documents//Visual Studio 2012//Projects//AMD//Schedule//ToDo.xml");
                //
                xEmp.Add(
                         new XElement("ToDo",
                          new XElement("Item", item),
                           new XElement("date", date),
                            new XElement("time", time),
                            new XElement("due", due),
                            new XElement("description", description))
                );
                xEmp.Save(@"C://Users//Khulu//Documents//Visual Studio 2012//Projects//AMD//Schedule//ToDo.xml");`
    
    0 讨论(0)
提交回复
热议问题