Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите преобразовать(трансформировать) / 20 сообщений из 20, страница 1 из 1
05.05.2011, 12:09
    #37246990
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.
24.
<xml>
  <main>
         <tov>
          <g32> 1 </g32>
          <g33>aaa</g33>
          <g30>
                     <f1>aaa</f1>
                     <f2>ffff</f2>
          </g30>
          <g30>
                     <f1>ккк</f1>
                     <f2>ппп</f2>
          </g30>
         </tov>
         <tov>
          <g32> 2 </g32>
          <g33>bbb</g33>
          <g30>
                     <f1>bbb</f1>
                     <f2>zzz</f2>
          </g30>
         </tov>  
.......................
  </main>
</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.
<xml>
  <main>
         <tov>
          <g32> 1 </g32>
          <g33>aaa</g33>
         </tov>

          <g30> 
                     <g32> 1 </g32>
                     <ID> 1 </ID>
                     <f1>aaa</f1>
                     <f2>ffff</f2>
          </g30>

          <g30>
                     <g32> 1 </g32>
                     <ID> 2 </ID>
                     <f1>ккк</f1>
                     <f2>ппп</f2>
          </g30>

         <tov>
          <g32> 2 </g32>
          <g33>bbb</g33>
         </tov>

          <g30>
                     <g32> 2 </g32>
                     <ID> 1 </ID>
                     <f1>bbb</f1>
                     <f2>zzz</f2>
          </g30>
  
.......................
  </main>
</xml>
...
Рейтинг: 0 / 0
05.05.2011, 12:36
    #37247067
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

Ну, а наработки какие-нить есть? Вопросы есть? Или просто хотел в раздел "предлагаю подзаработать" кинуть, но просто ошибся...
...
Рейтинг: 0 / 0
05.05.2011, 12:53
    #37247116
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
Главный вопрос как сделать <ID>?
...
Рейтинг: 0 / 0
05.05.2011, 12:54
    #37247123
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777Главный вопрос как сделать <ID>? count()
...
Рейтинг: 0 / 0
05.05.2011, 18:09
    #37248155
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
в принципе count помог, спасибо.
И на будущие,refreg , не стоит ехидничать, тебе тоже когда-нибудь понадобиться помощь ..
что касается наработок, то я их не выкладывал из-за большого размера, так как вряд ли бы кто-нибудь стал бы в нем разбираться
...
Рейтинг: 0 / 0
11.05.2011, 10:44
    #37254352
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
Народ а подскажите как из true сделать 1, а из false - 0 ?
...
Рейтинг: 0 / 0
11.05.2011, 11:06
    #37254372
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

number()
...
Рейтинг: 0 / 0
12.05.2011, 13:30
    #37256880
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
а можно маленький примерчик ? а то что-то не въехал :\
например как будет для этого случая:
Код: plaintext
1.
2.
3.
4.
5.
.......................
<LINE_ID>
	<xsl:number count="catESAD_cu:RateOutputGoods"/>
</LINE_ID>
.....................
на выходе надо
<LINE_ID>0</LINE_ID> или <LINE_ID>1</LINE_ID>
...
Рейтинг: 0 / 0
12.05.2011, 13:43
    #37256906
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

Если 0 , когда элемента catESAD_cu:RateOutputGoods нет
а 1 , если элемент catESAD_cu:RateOutputGoods есть, то:
Код: plaintext
<xsl:value-of select="number(boolean(catESAD_cu:RateOutputGoods))"/>

PS. number() - со скобками значит функция, иначе бы так и написал <xsl:number>
PPS. boolean() - переводит в true или false, в зависимости, есть элемент или нет
...
Рейтинг: 0 / 0
12.05.2011, 13:46
    #37256918
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
спасибо, помогло :)
...
Рейтинг: 0 / 0
12.05.2011, 13:56
    #37256943
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
хотя вру, не помогло...
наверное я плохо объяснил..
на входе :
Код: plaintext
<test>false</test>
на выходе надо :
Код: plaintext
<rez> 0 </rez>
Такое не прокатывает ... на выходе NaN
Код: plaintext
1.
2.
3.
<rez>
<xsl:value-of select="number(test)"/>
</rez>
...
Рейтинг: 0 / 0
12.05.2011, 14:16
    #37256983
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

В данном случае false у тя строка:
Код: plaintext
<xsl:value-of select="number(test != 'false')"/>
...
Рейтинг: 0 / 0
12.05.2011, 15:11
    #37257171
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
Прокатило! еще раз спасибо
...
Рейтинг: 0 / 0
03.06.2011, 13:06
    #37293318
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
Появился еще вопрос:
есть такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<all>
     <tov>
            <n> 1 </n>
            <test>gg</test>
                     <descr>
                               <text>olololol</text>
                     </descr>
                     <descr>
                               <text>trooooo</text>
                     </descr>
    </tov>
    <tov>
            <n> 3 </n>
            <test>ее</test>
                     <descr>
                               <text>ааа</text>
                     </descr>
                     <descr>
                               <text>ggggа</text>
                     </descr>
    </tov>
</all>      

надо такое

Код: 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.
<all>
     <tov>
            <n> 1 </n>
            <test>gg</test>
                     <descr>
                               <n> 1 </n>
                               <text>olololol</text>
                     </descr>
                     <descr>
                               <n> 1 </n>
                               <text>trooooo</text>
                     </descr>
    </tov>
    <tov>
            <n> 3 </n>
            <test>ее</test>
                     <descr>
                               <n> 3 </n>
                               <text>ааа</text>
                     </descr>
                     <descr>
                               <n> 3 </n>
                               <text>ggggа</text>
                     </descr>
    </tov>
</all>      
Т.е. поле n вынести в дочерние таблицы. Что-то я не въехал как такое намудрить
...
Рейтинг: 0 / 0
03.06.2011, 13:14
    #37293363
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
как передеалть?:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<test>
<xsl:value-of select="test"/>
</test>
<xsl:for-each select="descr">
<descr>
<n>
????????
</n>
</descr>
</xsl:for-each>
...
Рейтинг: 0 / 0
03.06.2011, 13:15
    #37293365
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

в template по descr:
Код: plaintext
<n><xsl:value select="../n/text()"></n>

PS. Если не поможет, приведи XSL. Читаем пост 2, и продолжаем учиться задавать вопросы...
...
Рейтинг: 0 / 0
03.06.2011, 13:17
    #37293373
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

Ну, вот... другое дело - предыдущий пост должен помочь
...
Рейтинг: 0 / 0
03.06.2011, 13:22
    #37293386
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
Действительно помог :)


p.s. прошу прощение за свою неграмотность в данной тематике, просто очень мало времени а работы много и нет возможности основательно засесть за изучение
...
Рейтинг: 0 / 0
22.06.2011, 12:55
    #37319826
friz777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
подскажите плиз как переделать из 12.07.2010 в такое 2010-07-12 ?
...
Рейтинг: 0 / 0
22.06.2011, 13:23
    #37319900
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите преобразовать(трансформировать)
friz777,

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


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