Прочитать данные из XML в один документ - C#
Формулировка задачи:
Всем привет.
Буду рад помощи.
Имею XML документ в котором нужно считать нужные позиции и вывести в строку.
Сам xml. Не часто с ними работаю
xml.rar
По коду идет класс с показателями xml дока
По контроллеру сделал так
Загвоздка в том, что при отображении страницы, получается что это не один документ, а несколько
Помогите странсформировать запрос так, чтобы считывало те поля, которые нужно в один документ (т.к. таких документов будет на считывание в дальнейшем много).
Или же вывести из коллекции lists все данные в одну строку
Пробовал вот так изначальнро, но выдавало ошибку, что не найден столбец 2.
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace XmlHelper.External.Models { public class Document { [Display(Name = "Номер транспортного средства")] public string TR_NOMER { get; set; } [Display(Name = "Номер СМГС")] public string NOM_DOC { get; set; } [Display(Name = "Дата СМГС")] public DateTime DATE_DOC { get; set; } [Display(Name = "Номер ТД")] public string NOM_DOC2 { get; set; } [Display(Name = "Дата ТД")] public DateTime DATE_DOC2 { get; set; } [Display(Name = "Номер Счета")] public string NOM_DOC3 { get; set; } [Display(Name = "Дата Счета")] public DateTime DATE_DOC3 { get; set; } [Display(Name = "Регистрационный номер ЭУРВ")] public string RENGUM_PTO { get; set; } [Display(Name = "Дата")] public DateTime DATE_REG { get; set; } [Display(Name = "Дата помещения на временное хранение")] public string DATE_RAZR { get; set; } [Display(Name = "Номер размещения на временное хранение")] public string NUM_RAZR { get; set; } } }
public ActionResult Index() { var lists = new List<Document>(); string xmlData = Server.MapPath("~/App_Data/1.xml"); DataSet ds = new DataSet(); ds.ReadXml(xmlData); var documents = new List<Document>(); IList<int> index = new List<int>(); index.Add(18); index.Add(19); index.Add(23); index.Add(24); documents = (from rows in ds.Tables[18].AsEnumerable() select new Document { TR_NOMER = rows[0].ToString() }).ToList(); foreach (var data in documents) { lists.Add(data); } documents = (from rows in ds.Tables[19].AsEnumerable() select new Document { NOM_DOC = rows[1].ToString(), DATE_DOC = Convert.ToDateTime(rows[2].ToString()) }).ToList(); foreach (var data in documents) { lists.Add(data); } documents = (from rows in ds.Tables[23].AsEnumerable() select new Document { RENGUM_PTO = rows[0].ToString(), DATE_REG = Convert.ToDateTime(rows[1].ToString()) }).ToList(); foreach (var data in documents) { lists.Add(data); } documents = (from rows in ds.Tables[24].AsEnumerable() select new Document { DATE_RAZR = rows[0].ToString(), NUM_RAZR = rows[2].ToString() }).ToList(); foreach (var data in documents) { lists.Add(data); } return View(lists); }
string xmlData = Server.MapPath("~/App_Data/1.xml"); DataSet ds = new DataSet(); ds.ReadXml(xmlData); var documents = new List<Document>(); IList<int> index = new List<int>(); index.Add(18); index.Add(19); index.Add(23); index.Add(24); //foreach (var indexTable in index) //{ //documents = (from rows in ds.Tables[indexTable].AsEnumerable() // select new Document // { // NOM_DOC = Convert.ToInt32(rows[1].ToString()), // DATE_DOC = rows[2].ToString(), // NOM_DOC2 = rows[3].ToString(), // DATE_DOC2 = rows[4].ToString(), // NOM_DOC3 = rows[5].ToString(), // DATE_DOC3 = rows[6].ToString(), // PENGUM_PTO = rows[0].ToString(), // DATE_REG = rows[1].ToString(), // DATE_RAZR = rows[0].ToString(), // NUM_RAZR = rows[2].ToString() // TR_NOMER = rows[0].ToString() // } // ).ToList();
Решение задачи: «Прочитать данные из XML в один документ»
textual
Листинг программы
string xmlData = Server.MapPath("~/App_Data/1.xml"); DataSet ds = new DataSet(); ds.ReadXml(xmlData);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д