2010-03-18 9 views
11

Necesito manipular un documento XML existente, y crear uno nuevo, eliminar algunos nodos y atributos, y tal vez agregar nuevos, ¿cuál sería el mejor grupo de clases para lograr esto?La mejor manera de manipular XML en .NET

Hay muchas clases de .NET para la manipulación de XML, y no estoy seguro de cuál sería la forma óptima de hacerlo.

+0

¿Qué versión de .NET? – AakashM

Respuesta

10

Si es un XML realmente grande que no cabe en la memoria, debe usar XmlReader/XmlWriter. Si no es LINQ to XML es muy fácil de usar. Si no tiene .NET 3.5, puede usar XmlDocument.

He aquí un ejemplo de la eliminación de un nodo:

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

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

¡Gracias! ¿Funcionaría esto con el xml como una cadena en la memoria o solo con archivos? – juan

+0

Debería funcionar con xml sin importar de dónde viene. Debería poder llamar a XElement.Parse() y pasar el xml como una cadena. –

+0

Si desea tratar el espacio de nombre xml, especialmente el espacio de nombres predeterminado, marque aquí: http://stackoverflow.com/questions/25396140/use-xpath-with-xml-namespace – smwikipedia

1

Si usted tiene un esquema oficial, se puede utilizar el XmlSerializer. De lo contrario, es mejor utilizar las clases XmlDocument, XmlNode, XmlElement, etc.

De lo contrario, podría también depende de lo que usted está utilizando el XML para, es decir, el marcado de algún documento, la representación de objetos, etc.

+0

@Kurt: 'XmlSerializer' no maneja todos los esquemas. –

Cuestiones relacionadas