Этот код
XmlDataDocument xmlDataDocument = new XmlDataDocument(ds);
не работает для меня, поскольку имена узлов получены из закодированного свойства столбцов ColumnName и будут выглядеть, например, как «last_x20_name».Это я не могу использовать в итоговой таблице Excel.Чтобы обработать имена столбцов, чтобы сделать их более дружественными, мне нужно сгенерировать сам XML.
Мне нравится LINQ to XML, и один из ответов на этот вопрос содержалследующие фрагменты:
XDocument doc = new XDocument(new XDeclaration("1.0","UTF-8","yes"),
new XElement("products", from p in collection
select new XElement("product",
new XAttribute("guid", p.ProductId),
new XAttribute("title", p.Title),
new XAttribute("version", p.Version))));
Вся цель состоит в том, чтобы динамически извлекать имена столбцов из набора данных, поэтому их жесткое кодирование невозможно.Можно ли это сделать с помощью Linq и без увеличения длины кода?