2010-03-18 12 views
11

Ich muss ein vorhandenes XML-Dokument bearbeiten und daraus ein neues erstellen, einige Knoten und Attribute entfernen und eventuell neue hinzufügen, was die beste Gruppe von Klassen wäre dies erreichen?Die beste Methode zum Bearbeiten von XML in .NET

Es gibt eine Menge von .NET-Klassen für XML-Manipulation, und ich bin mir nicht sicher, was wäre der optimale Weg, um es zu tun.

+0

Welche .NET-Version? – AakashM

Antwort

10

Wenn es ein wirklich riesiges XML ist, das nicht in den Speicher passen kann, sollten Sie XmlReader/XmlWriter verwenden. Wenn nicht LINQ to XML ist sehr einfach zu bedienen. Wenn Sie .NET 3.5 nicht haben, können Sie XmlDocument verwenden.

Hier ist ein Beispiel für das Entfernen eines Knotens:

using System.Xml.Linq; 
using System.Xml.XPath; 

var doc = XElement.Load("test.xml"); 
doc.XPathSelectElement("//customer").Remove(); 
doc.Save("test.xml"); 
+0

Danke! Würde dies mit der XML als String im Speicher oder nur mit Dateien funktionieren? – juan

+0

Es sollte mit XML funktionieren, egal woher es kommt. Sie sollten XElement.Parse() aufrufen und die XML-Datei als Zeichenfolge übergeben können. –

+0

Wenn Sie mit XML-Namespace, insbesondere dem Standard-Namespace, umgehen möchten, klicken Sie hier: http://StackOverflow.com/questions/25396140/use-xpath-with-xml-namespace – smwikipedia

1

Wenn Sie ein offizielles Schema haben, können Sie die XmlSerializer verwenden. Andernfalls empfiehlt es sich, die Klassen XmlDocument, XmlNode, XmlElement usw. zu verwenden.

Sonst könnte es auch davon ab, was die XML für verwenden, dh Markierung ein Dokument auf, was Objekte usw.

+0

@Kurt: 'XmlSerializer' behandelt nicht alle Schemata. –

Verwandte Themen