powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите преобразовать(трансформировать)
20 сообщений из 20, страница 1 из 1
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #37247067
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
friz777,

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

number()
...
Рейтинг: 0 / 0
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #37256918
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, помогло :)
...
Рейтинг: 0 / 0
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #37256983
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
friz777,

В данном случае false у тя строка:
Код: plaintext
<xsl:value-of select="number(test != 'false')"/>
...
Рейтинг: 0 / 0
Помогите преобразовать(трансформировать)
    #37257171
friz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прокатило! еще раз спасибо
...
Рейтинг: 0 / 0
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #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
Помогите преобразовать(трансформировать)
    #37293365
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
friz777,

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

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

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


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

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


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