Как удалить узел из XML-файла с помощью C# [дубликат]

В быстрой версии 3.0.1

return GIDSignIn.sharedInstance().handle(url, sourceApplication:    
options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation:     
options[UIApplicationOpenURLOptionsKey.annotation])
19
задан Community 23 May 2017 в 11:46
поделиться

4 ответа

Возможно, будет проще использовать XPath для поиска узлов, которые вы хотите удалить. Этот поток stackoverflow может дать вам некоторые идеи.

В вашем случае вы найдете четыре узла, которые вам нужны, используя это выражение:

XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNodeList nodes = doc.SelectNodes("//Setting[@name='File1']");
6
ответ дан 30 November 2019 в 03:08
поделиться

Для этого можно использовать Linq to XML :

XDocument doc = XDocument.Load("input.xml");
var q = from node in doc.Descendants("Setting")
        let attr = node.Attribute("name")
        where attr != null && attr.Value == "File1"
        select node;
q.ToList().ForEach(x => x.Remove());
doc.Save("output.xml");
26
ответ дан 30 November 2019 в 03:08
поделиться

DocumentElement является корневым узлом документа, поэтому childNodes [1] не существует в этом документе. childNodes [0] будет узлом

3
ответ дан 30 November 2019 в 03:08
поделиться

Удаление узлов из XML

            XmlDocument doc = new XmlDocument();
            doc.Load(path);
            XmlNodeList nodes = doc.SelectNodes("//Setting[@name='File1']");
            for (int i = nodes.Count - 1; i >= 0; i--)
            {
                nodes[i].ParentNode.RemoveChild(nodes[i]);
            }
            doc.Save(path);

Добавление атрибутов к узлам в XML

    XmlDocument originalXml = new XmlDocument();
    originalXml.Load(path);
    XmlNode menu = originalXml.SelectSingleNode("//Settings");
    XmlNode newSub = originalXml.CreateNode(XmlNodeType.Element, "Setting", null);
    XmlAttribute xa = originalXml.CreateAttribute("name");
    xa.Value = "qwerty";
    XmlAttribute xb = originalXml.CreateAttribute("value");
    xb.Value = "555";
    newSub.Attributes.Append(xa);
    newSub.Attributes.Append(xb);
    menu.AppendChild(newSub);
    originalXml.Save(path);
8
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: