Загрузка XML в БД на C#

209
21 октября 2017, 15:25

Добрый день. Необходимо распарсить XML файл следующего вида

<СообщОтказ_115ФЗ>
    <СлужЧасть>
      <ВерсияФормата>1.1</ВерсияФормата>
      <ДатаСообщения>18/10/2017</ДатаСообщения>
      <ТелОператор>01234567890</ТелОператор>
      <ЭлектроннаяПочта>email@email.ru</ЭлектроннаяПочта>
    </СлужЧасть>
    <ИнформЧасть>
      <ТипОрганизация>КО</ТипОрганизация>
      <Раздел1.1>
        <НомерЗаписи>00000000000</НомерЗаписи>
        <ФорматЗаписи>4077</ФорматЗаписи>
        <ТипЗаписи>1</ТипЗаписи>
        <ПризнакИнф>1</ПризнакИнф>
        <КодОтказа>00</КодОтказа>
        <ДатаОтказа>31/08/2017</ДатаОтказа>
        <ТипКлиента>1</ТипКлиента>
        <ПризнакКлиента>1</ПризнакКлиента>
        <СведЮЛ>
          <НаимЮЛ>ООО РОГА И КОПЫТА</НаимЮЛ>
          <ИННЮЛ>0000000</ИННЮЛ>
          <КППЮЛ>000000</КППЮЛ>
          <ОГРНЮЛ>000000</ОГРНЮЛ>
          <АдрРегЮЛ>
            <КодОКСМ>0000</КодОКСМ>
            <СтранаНаименование>РОССИЙСКАЯ ФЕДЕРАЦИЯ</СтранаНаименование>
            <КодСубъектаПоОКАТО>000</КодСубъектаПоОКАТО>
            <Район>Какая-то область</Район>
            <Пункт>какой-то город</Пункт>
            <Улица>какая-то улица</Улица>
            <Дом>1</Дом>
            <Корп></Корп>
            <Оф></Оф>
          </АдрРегЮЛ>
          <АдрЮЛ>
            <КодОКСМ>0000</КодОКСМ>
            <СтранаНаименование>РОССИЙСКАЯ ФЕДЕРАЦИЯ</СтранаНаименование>
            <КодСубъектаПоОКАТО>0</КодСубъектаПоОКАТО>
            <Район>ОБЛ</Район>
            <Пункт>Г</Пункт>
            <Улица>УЛ</Улица>
            <Дом>0</Дом>
            <Корп></Корп>
            <Оф></Оф>
          </АдрЮЛ>
        </СведЮЛ>
      </Раздел1.1>
      <Раздел1.1>
        <НомерЗаписи>00000000001</НомерЗаписи>
        <ФорматЗаписи>4077</ФорматЗаписи>
        <ТипЗаписи>2</ТипЗаписи>
        <ПризнакИнф>0</ПризнакИнф>
        <КодОтказа>03</КодОтказа>
        <ДатаОтказа>11/10/2017</ДатаОтказа>
        <ТипКлиента>3</ТипКлиента>
        <ПризнакКлиента>1</ПризнакКлиента>
        <СведФЛИП>
          <ФИОФЛИП>
            <Фам>фамилия</Фам>
            <Имя>имя</Имя>
            <Отч>отчество</Отч>
          </ФИОФЛИП>
          <ИННФЛИП>000000</ИННФЛИП>
          <ОГРНИП>000000</ОГРНИП>
          <АдрРегИП>
            <КодОКСМ>000</КодОКСМ>
            <СтранаНаименование>Российская Федерация</СтранаНаименование>
            <КодСубъектаПоОКАТО>000</КодСубъектаПоОКАТО>
            <Район>р-н</Район>
            <Пункт>с.</Пункт>
            <Улица>ул.</Улица>
            <Дом>0</Дом>
            <Корп></Корп>
            <Оф></Оф>
          </АдрРегИП>
          <СведДокУдЛичн>
            <ВидДокКод></ВидДокКод>
            <ВидДокНаименование>Паспорт</ВидДокНаименование>
            <СерияДок>0</СерияДок>
            <НомДок>0</НомДок>
            <ДатВыдачиДок>0</ДатВыдачиДок>
            <КемВыданДок>кем-то</КемВыданДок>
            <КодПодр>000-000</КодПодр>
          </СведДокУдЛичн>
          <ДатаРождения></ДатаРождения>
          <МестоРожд>
            <КодОКСМ></КодОКСМ>
            <СтранаНаименование></СтранаНаименование>
            <КодСубъектаПоОКАТО></КодСубъектаПоОКАТО>
            <Район></Район>
            <Пункт></Пункт>
          </МестоРожд>
          <КодОКСМ></КодОКСМ>
          <СтранаНаименование></СтранаНаименование>
          <ПризнакПубЛицо>0</ПризнакПубЛицо>
        </СведФЛИП>
      </Раздел1.1>

Попробовал сделать с помощью DataSet

DataSet ds = new DataSet(); ds.ReadXml("C:\\load\\CB_ES550P_20171018_001.xml"); foreach (DataRow item in ds.Tables["Раздел1.1"].Rows) { Console.WriteLine("Номер записи: {0}, НаименованиеЮЛ: {1}" item["НомерЗаписи"].ToString(),item["НаимЮЛ"].ToString());  } 

Но при выполнении данного кода появляется ошибка "Столбец "НаимЮЛ" не принадлежит таблице Раздел1.1. Как вывести значения НаимЮЛ в строку вместе с номером записи?

READ ALSO
Способы применения директив #region и #endregion в C#

Способы применения директив #region и #endregion в C#

Я вот прочитал про #region и #endregion что они нужны для группировки членов классов, но более подробно не нашелХочу понять более подробно

304
Разбить &ldquo;класс-бог&rdquo;

Разбить “класс-бог”

В моём проекте есть сервис WCF, есть интерфейс описывающий ServiceContract (IMainHost), и есть класс на основе этого интерфейса (MainHost)И всё отлично работает

224