powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование в плоский XML
7 сообщений из 7, страница 1 из 1
Преобразование в плоский XML
    #37428942
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из БД выгружается 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.
<main>
   <tab1>
          <row num="1">  
                   <field1/>
                   <field2/>
                   <.........>
                   <fieldN/>
          </row> 
          <row num="2">
                   <field1/>
                   <field2/>
                   <.........>
                   <fieldN/>
          </row>
          <........>
          <row num="N">
                    .......
          </row>
   </tab1>
   <tab2>
            ........
   </tab2>
</main>

Надо убрать row т.е. сделать что бы получилось примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<main>
    <tab1>
          <field1/>
          <field2/>
          <.........>
          <fieldN/>
    </tab1>
    <tab2>
          <field1/>
          <field2/>
          <.........>
          <fieldN/>
    </tab2>
..........
</main>

В голове только одна мысль
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<xsl:template match="//MAIN/TAB1/ROW">
<TAB1>
<field1><xsl:value-of select="field1"/></field1>
<field2><xsl:value-of select="field2"/></field2>
...................................................................
<fieldN><xsl:value-of select="fieldN"/></fieldN>
</TAB1>	
</xsl:template>

Но тут придется прописывать все поля...это не вариант...как это можно сделать по другому?
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37429042
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xsl:template match="//MAIN/TAB1/ROW">
  <TAB1>
    <xsl:apply-templates select="*" mode="fld"/>
  </TAB1>	
</xsl:template>

<xsl:template match="*" mode="fld">
  <xsl:element name="{local-name(.)}">
    <xsl:value-of select="."/>
  </xsl:element>
</xsl:template>
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37429141
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 _Vasilisk_
Что-то не правильно получается....получается что-то типа
<TAB1>dgfdf2325235</TAB1> , т.е. пропадают теги <field>
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37429157
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выкрутился так:
Код: plaintext
1.
2.
3.
4.
5.
6.
<xsl:if test="//MAIN/TAB1/ROW"> 
 <xsl:for-each select="//MAIN/TAB1/ROW/@num">
<TAB1>
<xsl:copy-of select="../*"/>
</TAB1> 
</xsl:for-each>
</xsl:if>
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37429329
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
friz777Что-то не правильно получается....получается что-то типа
<TAB1>dgfdf2325235</TAB1> , т.е. пропадают теги <field>Не может такого быть. XML и тот XSL, что у Вас получился в студию
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37429759
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
friz777,

Неясна логика( цель, смысл ) задания. В каждой таблице только одна строка? Или каждую строку таблицы tab1 надо обернуть тегом <tab1 /> ? Или внутри каждой таблицы, последовательно поле1-поле2-поле3-поле1-поле2-поле3-поле1-поле2-поле3-поле1-поле2-поле3-... ?

Короче, куда делась вторая и N-ая строка в посте 1 из исходящего XML ? В результирующем XML их невидно!
...
Рейтинг: 0 / 0
Преобразование в плоский XML
    #37430508
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to refreg, именно надо убрать row и обернуть все поля(каждую строку в таблице) в <tab1>
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование в плоский XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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