Доступный к XML с использованием LINQ - PullRequest
1 голос
/ 08 февраля 2012

Я пишу метод для преобразования данных с использованием LINQ.Мне удалось получить прямое преобразование из datatable в XML, как показано ниже:

XDocument doc = new XDocument(new XDeclaration("1.0","UTF-8","yes"),
   new XElement("pfolios", from p in dt.AsEnumerable()
    select new XElement("pfolio",
        new XAttribute("ID", p.ID), 
        new XAttribute("Date", p.Date),
        new XAttribute("Expired", p.Expiry))));

, но мне нужна помощь, чтобы написать метод, который принимает данные с любым количеством столбцов в качестве входных данных и записывает в xml что-то вродеthis: Это выражение lamdba не работает, но я ищу способ упростить это.Заранее спасибо за помощь

  XElement xe = new XElement("pfolios", from p in dt.AsEnumerable()
             select new XElement("pfolio",dt.AsEnumerable().ToList().ForEach(dc=> dt.Columns) 
new XAttribute(dc.ColumnName, p[dc.ColumnName])));

Ответы [ 2 ]

3 голосов
/ 13 августа 2015

Попробуйте это

XElement container = new XElement("container");

using (XmlWriter w = container.CreateWriter()) {

  DataTable.WriteXml(w, System.Data.XmlWriteMode.WriteSchema, true);
 }
2 голосов
/ 08 февраля 2012

Вы ищете

table.AsEumerable().Select(row =>
    new XElement("row",
        table.Columns.Cast<DataColumn>().Select(col =>
            new XAttribute(col.ColumnName, row[col])
        )
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...