Лучший способ манипулировать XML в .NET.

Мне нужно манипулировать существующим XML-документом и создать из него новый, удалив несколько узлов и атрибутов и, возможно, добавив новые, что было бы лучшей группой классов для этого?

Существует много классов .NET для обработки XML, и я не уверен, каким будет оптимальный способ сделать это.

Ответ 1

Если это действительно огромный XML, который не может вписаться в память, вы должны использовать XmlReader/XmlWriter. Если не LINQ to XML, очень прост в использовании. Если у вас нет .NET 3.5, вы можете использовать XmlDocument.

Вот пример удаления node:

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

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

Ответ 3

Анализ документа с помощью таблиц стилей XML может быть самым простым вариантом, если это просто процесс преобразования.

Вот как использовать XSLT в .NET.

и

Вот введение в XSLT.

Сначала это немного смутило меня, но теперь я очень использую XSLT для выполнения всех моих XML-конверсий.

Ответ 4

Если у вас есть официальная схема, вы можете использовать XmlSerializer. В противном случае лучше использовать классы XmlDocument, XmlNode, XmlElement и т.д.

В противном случае это также может зависеть от того, что вы используете xml для, например, для маркировки какого-либо документа, представляющего объекты и т.д.