Mehr von Jürgen Gutsch

Mehr von Jürgen Gutsch

Empfehlungen von Jürgen Gutsch

Blog-Empfehlungen von Jürgen Gutsch

Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Jürgen Gutsch

ASP.NET und mehr...

News

LINQ to XML - Einen XML Knoten aus einem vorhandenem XML Dokument löschen

Der im vorigen Artikel hinzugefügte knoten soll auch wieder entfernt werden können. Folgende paar Zeilen erledigen diese Aufgabe.

XDocument xdoc = XDocument.Load(this.XmlFilePath);
var xlayouts = from c in xdoc.Elements("layouts").Elements("layout")
               where c.Attribute("folder").Value == FolderName
               select c;
foreach (var xlayout in xlayouts.ToList())
    xlayout.Remove();
xdoc.Save(this.XmlFilePath);

Der LINQ Query selektiert alle <layout>-Knoten innerhalb des <layouts>-Knotens, bei denen der Wert des Attributes "folder" dem der übergebenen Variable "FolderName" entspricht.

Anschließend gehe ich in der Schleife alle XElement Objekte durch und entferne sie. In der Schleife muss die XElement Auflistung in eine generische Liste konvertiert werden, damit der Löschvorgang hier funktionieren kann. Die Erklärung dazu ist in diesem MSDN Artikel zu finden: Mixed Declarative Code/Imperative Code Bugs (C#) (LINQ to XML)

Posted: Mittwoch, 17. September 2008 10:23 von Jürgen Gutsch
Abgelegt unter: , , , ,

Kommentare

Rene Drescher-Hackel sagte:

Hallo Jürgen,

du kannst es aber noch einfacher gestalten, indem du WHERE nutzt:

xdoc.Elements("layouts").Elements("layout").Where(x => x.Attribute("folder").Value.Equals(FolderName)).Remove();

Rene

# Dezember 16, 2008 09:17

Jürgen Gutsch sagte:

Hallo Rene,

stimmt, hast recht. Danke für den Hinweis :-)

# Dezember 17, 2008 07:06
Anonyme Kommentare sind nicht zugelassen