Преобразование XML в DataTable на C#: подробное руководство

В этой записи блога мы рассмотрим различные методы преобразования XML-данных в DataTable с помощью C#. Мы углубимся в примеры кода и объясним каждый подход в простой и разговорной форме. Итак, начнём!

Метод 1: использование DataSet и ReadXml()
Первый метод включает использование класса DataSet и его метода ReadXml(). Этот метод считывает данные XML и автоматически создает DataTable для каждой таблицы в структуре XML. Вот пример:

DataSet dataSet = new DataSet();
dataSet.ReadXml("path/to/xml/file.xml");
DataTable dataTable = dataSet.Tables[0];

Метод 2: использование LINQ to XML
LINQ to XML предоставляет мощный механизм запросов и манипулирования XML-данными на C#. Мы можем использовать LINQ to XML для преобразования XML в DataTable. Вот фрагмент кода, демонстрирующий этот подход:

XDocument xdoc = XDocument.Load("path/to/xml/file.xml");
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Column1");
dataTable.Columns.Add("Column2");
var query = from element in xdoc.Descendants("Row")
            select new
            {
                Column1 = element.Element("Column1").Value,
                Column2 = element.Element("Column2").Value
            };
foreach (var item in query)
{
    dataTable.Rows.Add(item.Column1, item.Column2);
}

Метод 3: использование XmlReader
Класс XmlReader обеспечивает быстрый прямой способ чтения XML-данных. Мы можем использовать этот класс для заполнения DataTable из XML. Вот пример:

XmlReader xmlReader = XmlReader.Create("path/to/xml/file.xml");
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Column1");
dataTable.Columns.Add("Column2");
while (xmlReader.Read())
{
    if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "Row")
    {
        xmlReader.ReadToDescendant("Column1");
        string column1 = xmlReader.ReadElementContentAsString();
        xmlReader.ReadToNextSibling("Column2");
        string column2 = xmlReader.ReadElementContentAsString();
        dataTable.Rows.Add(column1, column2);
    }
}

В этой статье мы рассмотрели три различных метода преобразования данных XML в DataTable на C#. Мы рассмотрели использование класса DataSet, LINQ to XML и XmlReader. Каждый подход имеет свои преимущества и может использоваться в зависимости от ваших конкретных требований. Используя эти методы, вы можете легко работать с XML-данными в табличном формате в своих приложениях C#.