Разбор XML файла в рекордсет

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Разбор XML файла в рекордсет

Сообщение shady » 04.09.2008 (Чт) 15:17

Боюсь что неправильно запостил тему в XML/XSL/XHTML, все-таки наверное стоит сюда. Исправляю.
Нужна помощь коллег с XML-ем
Есть файл 2НДФЛ.XML Содержание файла и правила его заполнения можно посмотреть на официальном сайте минфина.
Сюда же приведу содержание 1 секции <Справка>.

Код: Выделить всё
<Справка>
      <ОбщСвИЧ>
         <ГодДох>2007</ГодДох>
         <НомСпр>1</НомСпр>
         <ДатаСпр>27.03.2008</ДатаСпр>
         <ИФНСНА>****</ИФНСНА>
      </ОбщСвИЧ>
      <ИстДох>
         <СвНАЮЛ>
            <ИННЮЛ>**************</ИННЮЛ>
            <КПП>***************</КПП>
            <НаимОрг>ООО Рога и копыта</НаимОрг>
            <ОКАТО>***********</ОКАТО>
            <Телефон>**********</Телефон>
         </СвНАЮЛ>
      </ИстДох>
      <ПолучДох>
         <ИННФЛ>**************</ИННФЛ>
         <ФИО>
            <Фамилия>Иванов</Фамилия>
            <Имя>Иван</Имя>
            <Отчество>Иванович</Отчество>
         </ФИО>
         <Статус>1</Статус>
         <ДатаРожд>09.10.1980</ДатаРожд>
         <Гражданство>643</Гражданство>
         <УдЛичн>
            <КодУдЛичн>********</КодУдЛичн>
            <СерНомДок>***********</СерНомДок>
         </УдЛичн>
         <АдрМЖРФ>
            <Индекс>**********</Индекс>
            <КодРегион>********</КодРегион>
            <Район>*********р-н</Район>
            <НасПункт>*************рп</НасПункт>
            <Улица>************</Улица>
            <Дом>*******</Дом>
         </АдрМЖРФ>
      </ПолучДох>
      <СвДохСтав>
         <Ставка>13</Ставка>
         <ДохВыч>
            <НомМес>01</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>22562.10</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>02</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>15567.40</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>03</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>36982.30</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>04</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>23494.00</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>05</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>24205.80</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>06</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>34062.80</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>07</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>20854.60</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>07</НомМес>
            <КодДоход>2012</КодДоход>
            <СумДоход>23499.28</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>08</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>23357.50</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>08</НомМес>
            <КодДоход>2760</КодДоход>
            <СумДоход>250.00</СумДоход>
            <КодВычет>503</КодВычет>
            <СумВычет>250.00</СумВычет>
         </ДохВыч>
         <ДохВыч>
            <НомМес>09</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>46402.90</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>10</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>25543.70</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>11</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>41135.60</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>12</НомМес>
            <КодДоход>2000</КодДоход>
            <СумДоход>103941.80</СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес>12</НомМес>
            <КодДоход>2760</КодДоход>
            <СумДоход>250.00</СумДоход>
            <КодВычет>503</КодВычет>
            <СумВычет>250.00</СумВычет>
         </ДохВыч>
         <СГДНалПер>
            <СГДСумм>442109.78</СГДСумм>
            <ОблСумм>441609.78</ОблСумм>
            <НИОблСумм>57409</НИОблСумм>
            <НУОблСумм>57409</НУОблСумм>
            <ВозврСуммПЛ>0</ВозврСуммПЛ>
            <ЗачСуммПЛ>0</ЗачСуммПЛ>
            <УдСуммПЛ>0</УдСуммПЛ>
            <ДолгНП>0</ДолгНП>
            <ДолгНА>0</ДолгНА>
            <ВзыскИФНС>0</ВзыскИФНС>
         </СГДНалПер>
      </СвДохСтав>
   </Справка>


Из всей этой каши, нужно получить ФИО и <ДохВыч> по каждому месяцу.
Погуглив на тему работы с XML наткнулся на XSLT. Только так и не понял, как это преобразование выполняется. И как можно это использовать.
Если кто-нить даст ссылку где можно об этом прочитать, буду признателен.
Заранее спасибо.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Разбор XML файла в рекордсет

Сообщение Viper » 04.09.2008 (Чт) 15:23

shady писал(а):Боюсь что неправильно запостил тему в XML/XSL/XHTML, все-таки наверное стоит сюда. Исправляю.
Нужна помощь коллег с XML-ем
Хочешь сказать, что теперь имеется две дублированные темы? Сие не есть гуд.
Весь мир матрица, а мы в нем потоки байтов!

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Re: Разбор XML файла в рекордсет

Сообщение shady » 04.09.2008 (Чт) 15:54

Viper писал(а):
shady писал(а):Боюсь что неправильно запостил тему в XML/XSL/XHTML, все-таки наверное стоит сюда. Исправляю.
Нужна помощь коллег с XML-ем
Хочешь сказать, что теперь имеется две дублированные темы? Сие не есть гуд.

Viper странно слышать от тебя такое :). Тема одна и только эта.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Разбор XML файла в рекордсет

Сообщение Proxy » 04.09.2008 (Чт) 19:41

Боюсь что неправильно запостил тему в XML/XSL/XHTML, все-таки наверное стоит сюда.

Звучит так, как-будто на самом деле запостил не в Visual Basic » VisualBasic 1-6 :P
Или молча перенесли? :P

Т.е. что должно быть в итоге? В каком виде должно выглядеть в итоге? Если покажешь так, как я сейчас подумал, то я напишу как это сделать, если я угадал.
Follow the white rabbit.

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Re: Разбор XML файла в рекордсет

Сообщение shady » 05.09.2008 (Пт) 7:34

Proxy писал(а):Звучит так, как-будто на самом деле запостил не в Visual Basic » VisualBasic 1-6 :P
Или молча перенесли? :P

Я ее сам сюда перенес ;)
Proxy писал(а):Т.е. что должно быть в итоге? В каком виде должно выглядеть в итоге? Если покажешь так, как я сейчас подумал, то я напишу как это сделать, если я угадал.

Нужно получить рекордсет со всеми "справками":

Рекордсет должен содеражать поля, и выглядеть должен примерно так:

Код: Выделить всё
Фамилия   Имя   Отчество   Январь     Февраль .... Декабрь
Иванов    Иван    Иванович    22562.10   15567.40 .... 103941.80

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Разбор XML файла в рекордсет

Сообщение Viper » 05.09.2008 (Пт) 10:28

shady писал(а):
Proxy писал(а):Звучит так, как-будто на самом деле запостил не в Visual Basic » VisualBasic 1-6 :P
Или молча перенесли? :P

Я ее сам сюда перенес ;)
Ну раз сам, то вопросов больше не имею :)
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 75

    TopList  
cron