powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите трансформировать 2РДФЛ
13 сообщений из 13, страница 1 из 1
Помогите трансформировать 2РДФЛ
    #35530131
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Помогите трансформировать XML файл в XML.
Исходные данные выглядят таким образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
<Справка>
      <ОбщСвИЧ>
         <ГодДох> 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 </ВзыскИФНС>
         </СГДНалПер>
      </СвДохСтав>
   </Справка>

Необходимо получить такую структуру.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<Справка>
            <Фамилия>Иванов</Фамилия>
            <Имя>Иван</Имя>
            <Отчество>Иванович</Отчество>
         <ДохВыч>
            <НомМес> 01 </НомМес>
            <КодДоход> 2000 </КодДоход>
            <СумДоход> 22562 . 10 </СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес> 02 </НомМес>
            <КодДоход> 2000 </КодДоход>
            <СумДоход> 15567 . 40 </СумДоход>
         </ДохВыч>
        .....
         <ДохВыч>
            <НомМес> 12 </НомМес>
            <КодДоход> 2000 </КодДоход>
            <СумДоход> 103941 . 80 </СумДоход>
         </ДохВыч>
         <ДохВыч>
            <НомМес> 12 </НомМес>
            <КодДоход> 2760 </КодДоход>
            <СумДоход> 250 . 00 </СумДоход>
            <КодВычет> 503 </КодВычет>
            <СумВычет> 250 . 00 </СумВычет>
         </ДохВыч>
   </Справка>
В конце, например, видно что месяц 12 повторяется 2 раза (ну или более раз), то желательно это все сгруппировать и суммировать.
Подскажите пожалуйста получится ли у меня это сделать при помощи XSLT. Если да, то подскажите как, или ссылку где можно почитать.
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35530159
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35530921
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<xsl:sort> + функция sum()

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35531073
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_<xsl:sort> + функция sum()
_Vasilisk_ А чуток подробнее можно? Как указать что нужно конкретные теги и их содержимое оставить? XML для меня совсем новое...
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35531606
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я мы книжки можем посоветовать.
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35532990
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shadyXML для меня совсем новое...
Как сказал SuSa на соседнем форуме - боян.

В MSDN все написано
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533229
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Как сказал SuSa на соседнем форуме - боян.
В MSDN все написано
Знаешь, для кого боян, для кого не боян. В MSDN отправить и я могу. Хотя я бы сначала отправил
на http://www.w3.org На котором в свою очередь можно найти и ссылки на русскоязычные статьи (переводы официальных статей). Поэтому если я спрашиваю, это не означает что я даже нигде не искал никакой информации по XML и если остались неясности, о которых я спросил, значит так и есть.
Например есть xml файл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="XslTest.xsl"?>

<root>
    <object>
	<LastName>Петров</LastName>
    </object>
    <object>
	<LastName>Сидоров</LastName>
    </object>
</root>
Применяю XSL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "xml"/>
<xsl:template match="/">
<xsl:for-each select="/root/object">
<xsl:value-of select="LastName"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
А если < LastName > заменить на < Фамилия >, то я получаю сообщение об ошибке
Код: plaintext
1.
2.
3.
В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''file:///D:/temp/XSL/XslTest.xsl''. Стр...

<xsl:value-of select="

Так что не надо умничать и отправлять куда-то, если не знаешь как сделать - промолчи, знаешь скажи.
А про MSDN - там написано может и все, но чтобы найти что-то действительно нужное или хотя бы полезное, нужно убить кучу времени и не факт, что найдешь.
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533692
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот это уже сааафсем другой разговор. У тебя xsl в неправильной кодировке.
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533803
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил
Код: plaintext
encoding="windows-1251"
- заработало. Про параметр encoding в xsl я почему-то забыл.
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533862
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно как-нить теперь получить (или сгенерировать с помощью xsl трансформации) XML файл такого содержания?
Код: plaintext
1.
2.
3.
4.
<?xml version="1.0" encoding="windows-1251"?>
<Фамилии>
<Фамилия>Петров</Фамилия>
<Фамилия>Сидоров</Фамилия>
</Фамилии>
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533873
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любые теги можно вставлять
Код: plaintext
<Фамилия><xsl:value-of select="LastName"/></Фамилия>
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35533954
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где указать что вывод я хочу получить не в Internet Explorer, а в файл NewXSLTest.XML
...
Рейтинг: 0 / 0
Помогите трансформировать 2РДФЛ
    #35534025
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например, тут
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите трансформировать 2РДФЛ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]