Прочитать данные из XML в один документ - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Буду рад помощи. Имею XML документ в котором нужно считать нужные позиции и вывести в строку. Сам xml. Не часто с ними работаю xml.rar По коду идет класс с показателями xml дока
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Xml.Serialization;
  8. namespace XmlHelper.External.Models
  9. {
  10. public class Document
  11. {
  12. [Display(Name = "Номер транспортного средства")]
  13. public string TR_NOMER { get; set; }
  14. [Display(Name = "Номер СМГС")]
  15. public string NOM_DOC { get; set; }
  16. [Display(Name = "Дата СМГС")]
  17. public DateTime DATE_DOC { get; set; }
  18. [Display(Name = "Номер ТД")]
  19. public string NOM_DOC2 { get; set; }
  20. [Display(Name = "Дата ТД")]
  21. public DateTime DATE_DOC2 { get; set; }
  22. [Display(Name = "Номер Счета")]
  23. public string NOM_DOC3 { get; set; }
  24. [Display(Name = "Дата Счета")]
  25. public DateTime DATE_DOC3 { get; set; }
  26. [Display(Name = "Регистрационный номер ЭУРВ")]
  27. public string RENGUM_PTO { get; set; }
  28. [Display(Name = "Дата")]
  29. public DateTime DATE_REG { get; set; }
  30. [Display(Name = "Дата помещения на временное хранение")]
  31. public string DATE_RAZR { get; set; }
  32. [Display(Name = "Номер размещения на временное хранение")]
  33. public string NUM_RAZR { get; set; }
  34. }
  35. }
По контроллеру сделал так
Листинг программы
  1. public ActionResult Index()
  2. {
  3. var lists = new List<Document>();
  4. string xmlData = Server.MapPath("~/App_Data/1.xml");
  5. DataSet ds = new DataSet();
  6. ds.ReadXml(xmlData);
  7. var documents = new List<Document>();
  8. IList<int> index = new List<int>();
  9. index.Add(18);
  10. index.Add(19);
  11. index.Add(23);
  12. index.Add(24);
  13.  
  14. documents = (from rows in ds.Tables[18].AsEnumerable()
  15. select new Document
  16. {
  17. TR_NOMER = rows[0].ToString()
  18. }).ToList();
  19. foreach (var data in documents)
  20. {
  21. lists.Add(data);
  22. }
  23. documents = (from rows in ds.Tables[19].AsEnumerable()
  24. select new Document
  25. {
  26. NOM_DOC = rows[1].ToString(),
  27. DATE_DOC = Convert.ToDateTime(rows[2].ToString())
  28. }).ToList();
  29. foreach (var data in documents)
  30. {
  31. lists.Add(data);
  32. }
  33.  
  34. documents = (from rows in ds.Tables[23].AsEnumerable()
  35. select new Document
  36. {
  37. RENGUM_PTO = rows[0].ToString(),
  38. DATE_REG = Convert.ToDateTime(rows[1].ToString())
  39. }).ToList();
  40. foreach (var data in documents)
  41. {
  42. lists.Add(data);
  43. }
  44. documents = (from rows in ds.Tables[24].AsEnumerable()
  45. select new Document
  46. {
  47. DATE_RAZR = rows[0].ToString(),
  48. NUM_RAZR = rows[2].ToString()
  49. }).ToList();
  50.  
  51. foreach (var data in documents)
  52. {
  53. lists.Add(data);
  54. }
  55. return View(lists);
  56. }
Загвоздка в том, что при отображении страницы, получается что это не один документ, а несколько Помогите странсформировать запрос так, чтобы считывало те поля, которые нужно в один документ (т.к. таких документов будет на считывание в дальнейшем много). Или же вывести из коллекции lists все данные в одну строку Пробовал вот так изначальнро, но выдавало ошибку, что не найден столбец 2.
Листинг программы
  1. string xmlData = Server.MapPath("~/App_Data/1.xml");
  2. DataSet ds = new DataSet();
  3. ds.ReadXml(xmlData);
  4. var documents = new List<Document>();
  5. IList<int> index = new List<int>();
  6. index.Add(18);
  7. index.Add(19);
  8. index.Add(23);
  9. index.Add(24);
  10. //foreach (var indexTable in index)
  11. //{
  12. //documents = (from rows in ds.Tables[indexTable].AsEnumerable()
  13. // select new Document
  14. // {
  15. // NOM_DOC = Convert.ToInt32(rows[1].ToString()),
  16. // DATE_DOC = rows[2].ToString(),
  17. // NOM_DOC2 = rows[3].ToString(),
  18. // DATE_DOC2 = rows[4].ToString(),
  19. // NOM_DOC3 = rows[5].ToString(),
  20. // DATE_DOC3 = rows[6].ToString(),
  21. // PENGUM_PTO = rows[0].ToString(),
  22. // DATE_REG = rows[1].ToString(),
  23. // DATE_RAZR = rows[0].ToString(),
  24. // NUM_RAZR = rows[2].ToString()
  25. // TR_NOMER = rows[0].ToString()
  26. // }
  27. // ).ToList();

Решение задачи: «Прочитать данные из XML в один документ»

textual
Листинг программы
  1. string xmlData = Server.MapPath("~/App_Data/1.xml");
  2. DataSet ds = new DataSet();
  3. ds.ReadXml(xmlData);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут