powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Разложить элементы по группам
2 сообщений из 2, страница 1 из 1
Разложить элементы по группам
    #36058562
Masochist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Можете помочь пожалуйста? Надо написать xsl-шаблон, который преобразует исходный файл in.xml в результирующий файл out.xml, раскладывая авторов и организации по своим группам (организации не должны повторяться - т.е. если несколько авторов работают в одной организации, то эта организация включается в результирующий файл только один раз).

In:

Код: 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.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
<?xml version="1.0" encoding="ISO-8859-1"?>
<CREATORS>
    <PERSON ROLE="CONTACT">
        <PREFIX>Prof</PREFIX>
        <FIRST_NAME>Mike</FIRST_NAME>
        <MIDDLE_INITIALS>J</MIDDLE_INITIALS>
        <LAST_NAME>Petrov</LAST_NAME>
        <SUFFIX/>
        <POSITION>Director</POSITION>
        <EMAIL_1>pontorez@pontorez.ru<;/EMAIL_1>
        <EMAIL_2>webmaster@pontorez.ru<;/EMAIL_2>
        <URL>www.pontorez.ru</URL>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT/>
            <ORGANISATION>Microsoft</ORGANISATION>
            <ADDRESS_1>Summertown Pavilion</ADDRESS_1>
            <ADDRESS_2>Middle Way</ADDRESS_2>
            <CITY>Oxford</CITY>
            <ZIP>OX2 7LG</ZIP>
            <REGION/>
            <COUNTRY CODE="GB">UK</COUNTRY>
            <PHONE_1>+ 380   6245   716300 </PHONE_1>
            <PHONE_2/>
            <FAX_1>+ 380   6245   716311 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE/>
    </PERSON>
    <PERSON ID="7091" ROLE="AUTHOR">
        <PREFIX>Prof</PREFIX>
        <FIRST_NAME>Mike</FIRST_NAME>
        <MIDDLE_INITIALS>J</MIDDLE_INITIALS>
        <LAST_NAME>Petrov</LAST_NAME>
        <SUFFIX/>
        <POSITION>Director</POSITION>
        <EMAIL_1>pontorez@pontorez.ru<;/EMAIL_1>
        <EMAIL_2>webmaster@pontorez.ru<;/EMAIL_2>
        <URL>www.pontorez.ru</URL>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT/>
            <ORGANISATION>Microsoft</ORGANISATION>
            <ADDRESS_1>Summertown Pavilion</ADDRESS_1>
            <ADDRESS_2>Middle Way</ADDRESS_2>
            <CITY>Oxford</CITY>
            <ZIP>OX2 7LG</ZIP>
            <REGION/>
            <COUNTRY CODE="GB">UK</COUNTRY>
            <PHONE_1>+ 380   6245   716300 </PHONE_1>
            <PHONE_2/>
            <FAX_1>+ 380   6245   716311 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE>Author footnote</FOOTNOTE>
    </PERSON>
    <PERSON ID="7094" ROLE="AUTHOR">
        <PREFIX>Mrs</PREFIX>
        <FIRST_NAME>Anne</FIRST_NAME>
        <MIDDLE_INITIALS/>
        <LAST_NAME>Eisinga</LAST_NAME>
        <SUFFIX/>
        <POSITION/>
        <EMAIL_1>aeisinga@Hardware.co.uk<;/EMAIL_1>
        <EMAIL_2/>
        <URL/>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT/>
            <ORGANISATION>Microsoft</ORGANISATION>
            <ADDRESS_1>NHS R&D Programme</ADDRESS_1>
            <ADDRESS_2>Summertown Pavilion, Middle Way</ADDRESS_2>
            <CITY>Oxford</CITY>
            <ZIP>OX2 7LG</ZIP>
            <REGION>Oxfordshire</REGION>
            <COUNTRY CODE="GB">UK</COUNTRY>
            <PHONE_1>+ 380   6245   716300 </PHONE_1>
            <PHONE_2/>
            <FAX_1>+ 380   6245   716311 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE/>
    </PERSON>
    <PERSON ID="15756" ROLE="AUTHOR">
        <PREFIX>Mr</PREFIX>
        <FIRST_NAME>Ed</FIRST_NAME>
        <MIDDLE_INITIALS/>
        <LAST_NAME>Juszczak</LAST_NAME>
        <SUFFIX/>
        <POSITION>Senior Medical Statistician</POSITION>
        <EMAIL_1>e.juszczak@cancer.org.uk<;/EMAIL_1>
        <EMAIL_2/>
        <URL>http://www.ihs.ox.ac.uk/csm/</URL>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT>Head of NHS Support</DEPARTMENT>
            <ORGANISATION>Centre for Statistics in Software</ORGANISATION>
            <ADDRESS_1>Pearson College</ADDRESS_1>
            <ADDRESS_2>Linton Road</ADDRESS_2>
            <CITY>Oxford</CITY>
            <ZIP>OX2 6UD</ZIP>
            <REGION/>
            <COUNTRY CODE="GB">UK</COUNTRY>
            <PHONE_1>+ 380   6245   112404 </PHONE_1>
            <PHONE_2/>
            <FAX_1>+ 380   6245   112424 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE/>
    </PERSON>
    <PERSON ID="7092" ROLE="AUTHOR">
        <PREFIX>Dr</PREFIX>
        <FIRST_NAME>Sally</FIRST_NAME>
        <MIDDLE_INITIALS/>
        <LAST_NAME>Hopewell</LAST_NAME>
        <SUFFIX/>
        <POSITION/>
        <EMAIL_1>shopewell@Hardware.co.uk<;/EMAIL_1>
        <EMAIL_2/>
        <URL/>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT/>
            <ORGANISATION>Microsoft</ORGANISATION>
            <ADDRESS_1>NHS R&D Programme</ADDRESS_1>
            <ADDRESS_2>Summertown Pavilion, Middle Way</ADDRESS_2>
            <CITY>Oxford</CITY>
            <ZIP>OX2 7LG</ZIP>
            <REGION>Oxfordshire</REGION>
            <COUNTRY CODE="GB">UK</COUNTRY>
            <PHONE_1>+ 380   6245   716300 </PHONE_1>
            <PHONE_2/>
            <FAX_1>+ 380   6245   716311 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE/>
    </PERSON>
    <GROUP ID="????">
        <GROUP_NAME>Bond team</GROUP_NAME>
        <CONTACT_PERSON>Monica Bond</CONTACT_PERSON>
        <EMAIL_1>mk@Hardware.dk<;/EMAIL_1>
        <URL/>
        <ADDRESS>
            <DEPARTMENT>Nordic Hardware Centre</DEPARTMENT>
            <ORGANISATION>Creyts, Dept  7112 </ORGANISATION>
            <ADDRESS_1>Blegdamsvej  29 </ADDRESS_1>
            <ADDRESS_2/>
            <CITY>Copenhagen</CITY>
            <ZIP> 2100 </ZIP>
            <REGION/>
            <COUNTRY CODE="DK">Denmark</COUNTRY>
            <PHONE_1>+ 45   3545   7110 </PHONE_1>
            <PHONE_2>+ 45   3524   9429 </PHONE_2>
            <FAX_1>+ 45   3545   7007 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE>Group footnote</FOOTNOTE>
    </GROUP>
    <PERSON ID="3" ROLE="AUTHOR">
        <PREFIX>Ms</PREFIX>
        <FIRST_NAME>Monica</FIRST_NAME>
        <MIDDLE_INITIALS/>
        <LAST_NAME>Bond</LAST_NAME>
        <SUFFIX/>
        <POSITION>Director of the Hardware Information Management System</POSITION>
        <EMAIL_1>mk@Hardware.dk<;/EMAIL_1>
        <EMAIL_2/>
        <URL>www.cc-ims.net</URL>
        <MOBILE_PHONE/>
        <ADDRESS>
            <DEPARTMENT>Nordic Hardware Centre</DEPARTMENT>
            <ORGANISATION>Creyts, Dept  7112 </ORGANISATION>
            <ADDRESS_1>Blegdamsvej  29 </ADDRESS_1>
            <ADDRESS_2/>
            <CITY>Copenhagen</CITY>
            <ZIP> 2100 </ZIP>
            <REGION/>
            <COUNTRY CODE="DK">Denmark</COUNTRY>
            <PHONE_1>+ 45   3545   7110 </PHONE_1>
            <PHONE_2>+ 45   3524   9429 </PHONE_2>
            <FAX_1>+ 45   3545   7007 </FAX_1>
            <FAX_2/>
        </ADDRESS>
        <FOOTNOTE/>
    </PERSON>
</CREATORS>

Out:

Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<creatorGroup>
    <creator affil="CD004002-aff-0001" creatorRole="author">
        <forenames>Mike</forenames>
        <surnamePrefix>J</surnamePrefix>
        <surname>Petrov</surname>
        <note id="CD004002-note-0001">
            <p>Author footnote</p>
        </note>
    </creator>
    <creator affil="CD004002-aff-0001" creatorRole="author">
        <forenames>Anne</forenames>
        <surname>Eisinga</surname>
    </creator>
    <creator affil="CD004002-aff-0002" creatorRole="author">
        <forenames>Ed</forenames>
        <surname>Juszczak</surname>
    </creator>
    <creator affil="CD004002-aff-0001" creatorRole="author">
        <forenames>Sally</forenames>
        <surname>Hopewell</surname>
    </creator>
    <creator affil="CD004002-aff-0003" type="collaboration" creatorRole="author">
        <collab>Bond team</collab>
    </creator>
    <creator affil="CD004002-aff-0003" creatorRole="author">
        <forenames>Monica</forenames>
        <surname>Bond</surname>
    </creator>
    <creator affil="CD004002-aff-0001" creatorRole="contact">
        <honorifics>Prof</honorifics>
        <forenames>Mike</forenames>
        <surnamePrefix>J</surnamePrefix>
        <surname>Petrov</surname>
        <jobTitle>Director</jobTitle>
        <email>pontorez@pontorez.ru<;/email>
        <email>webmaster@pontorez.ru<;/email>
    </creator>
    <affiliation id="CD004002-aff-0001" countryCode="GB">
        <orgName>Microsoft</orgName>
        <address>
            <street>Summertown Pavilion</street>
            <street>Middle Way</street>
            <city>Oxford</city>
            <country>UK</country>
            <postCode>OX2 7LG</postCode>
        </address>
    </affiliation>
    <affiliation id="CD004002-aff-0002" countryCode="GB">
        <orgName>Centre for Statistics in Software</orgName>
        <orgDiv>Head of NHS Support</orgDiv>
        <address>
            <street>Pearson College</street>
            <street>Linton Road</street>
            <city>Oxford</city>
            <country>UK</country>
            <postCode>OX2 6UD</postCode>
        </address>
    </affiliation>
    <affiliation id="CD004002-aff-0003" countryCode="DK">
        <collabContact>Monica Bond</collabContact>
        <orgName>Creyts, Dept  7112 </orgName>
        <orgDiv>Nordic Hardware Centre</orgDiv>
        <address>
            <street>Blegdamsvej  29 </street>
            <city>Copenhagen</city>
            <country>Denmark</country>
            <postCode> 2100 </postCode>
        </address>
    </affiliation>
</creatorGroup>
...
Рейтинг: 0 / 0
Разложить элементы по группам
    #36058666
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынц

С уважением, Vasilisk
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Разложить элементы по группам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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