Как преобразовать DataTable в XML файл в С#?

Я хочу преобразовать DataTable в XML файл на С#. Как я могу это сделать?

Ответ 1

Еще один способ сделать это - добавить таблицу данных в набор данных и вызвать GetXml() в наборе данных. В дополнение к этому набору данных есть WriteXml() и ReadXml() для записи/чтения XML непосредственно в/из пути или потока файла.

DataSet ds = new DataSet();
ds.Tables.Add(dt1); // Table 1
ds.Tables.Add(dt2); // Table 2...
...
string dsXml= ds.GetXml();
...
using (StreamWriter fs = new StreamWriter(xmlFile)) // XML File Path
{
      ds.WriteXml(fs);
}

Ответ 2

Вы можете использовать метод DataTable.WriteXml.

Вот пример:

Как я могу преобразовать свой datatable в XML с помощью С# 2.0?

string result;
using (StringWriter sw = new StringWriter()) {
dataTable.WriteXml(sw);
result = sw.ToString();
}

Если вам действительно не нужна строка, но только для чтения, обрабатываемый XML, лучше использовать MemoryStream и XPathDocument:

XPathDocument result;
using (MemoryStream ms = new MemoryStream()) {
dataTable.WriteXml(ms);
ms.Position = 0;
result = new XPathDocument(ms);
}

Ответ 3

Вы можете использовать метод writeXML, чтобы сохранить его как XML (Источник).

Вы также можете использовать сериализацию/десриализацию, как описано в пятом сообщении этого forum.