Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Разделение и объединение XML документов с помощью XSLT / 2 сообщений из 2, страница 1 из 1
12.01.2010, 12:40
    #36405005
eLVik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение и объединение XML документов с помощью XSLT
Здравствуйте.

Есть XML-файл вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<Root>
   <MetaData>
       <Name>aaa</Name>
       <Author id="1234">Ivanov</Author>
   </MetaData>
   <Content>
       <Block id="1">
           <Name>block1</Name>
           <Functions>
                <Function id="1">
                     <Name>f1</Name>
                </Function>
                <Function id="2">
                     <Name>f2</Name>
                </Function>                
                <Function id="3">
                     <Name>f3</Name>
                </Function>
           </Functions>
       </Block>
   </Content>
</Root>

Необходимо создать XSL-шаблон, создающий аналогичный документ для каждой функции в отдельности, то есть элемент Functions, содержал бы единственный элемент Function вместе с его контентом.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<Root>
   <MetaData>
       <Name>aaa</Name>
       <Author id="1234">Ivanov</Author>
   </MetaData>
   <Content>
       <Block id="1">
           <Name>block1</Name>
           <Functions>
                <Function id="1">
                     <Name>f1</Name>
                </Function>
           </Functions>
       </Block>
   </Content>
</Root>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<Root>
   <MetaData>
       <Name>aaa</Name>
       <Author id="1234">Ivanov</Author>
   </MetaData>
   <Content>
       <Block id="1">
           <Name>block1</Name>
           <Functions>
                <Function id="2">
                     <Name>f2</Name>
                </Function>                
           </Functions>
       </Block>
   </Content>
</Root>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<Root>
   <MetaData>
       <Name>aaa</Name>
       <Author id="1234">Ivanov</Author>
   </MetaData>
   <Content>
       <Block id="1">
           <Name>block1</Name>
           <Functions>            
                <Function id="3">
                     <Name>f3</Name>
                </Function>
           </Functions>
       </Block>
   </Content>
</Root>

Также необходим шаблон, выполняющий обратную задачу.
...
Рейтинг: 0 / 0
12.01.2010, 22:37
    #36406419
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение и объединение XML документов с помощью XSLT
Прямая задача решается путем запуска n-раз преобразования с передачей нужного id через xsl:param

Обратная задача решается при помощи функции document()

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


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