powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Интересный xml
3 сообщений из 3, страница 1 из 1
Интересный xml
    #34309833
NNika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой 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.
- <doroga>
- <Nod nod="Дорога">
- <Region region="По региону">
- <Station station="Все станции" id="">
    <vag_m> 75026 </vag_m> 
    <tn_m> 4571402 . 84 </tn_m> 
  </Station>
 </Region>
 </Nod>
- <Nod nod="КАРТЛ">
- <Region region="По региону">
- <Station station="Все станции" id="8005">
   <vag_m> 17184 </vag_m> 
   <tn_m> 1068812 . 61 </tn_m> 
   </Station>
  </Region>
- <Region region="КАРТЛ">
- <Station station="Все станции" id="800500">
    <vag_m> 17184 </vag_m> 
    <tn_m> 1068812 . 61 </tn_m> 
  </Station>
  </Region>
</doroga>
Нужно получить вот такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
- <doroga>
      <vag_m> 75026 </vag_m> 
       <tn_m> 4571402 . 84 </tn_m> 
    -<Nod nod="КАРТЛ">
          <vag_m> 17184 </vag_m> 
         <tn_m> 1068812 . 61 </tn_m> 
      -<Region region="КАРТЛ">
            <vag_m> 17184 </vag_m> 
            <tn_m> 1068812 . 61 </tn_m> 
           - <Station station="АЛЬМУХАМЕДОВО" id="818209">
               <vag_m> 3 </vag_m> 
               <tn_m> 187 . 60 </tn_m> 
            </Station>
       </Region>
      </Nod>
</doroga>
Использую вот такой sql-запрос:
Код: 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.
isnull(cast([[Станция погр]].[НОД погр]].[MEMBER_CAPTION]]] as varchar), 'Дорога') as nod,
isnull(cast([[Станция погр]].[Регион погр]].[MEMBER_CAPTION]]] as varchar),' По региону') as region,
isnull (cast([[Станция погр]].[Стан погр]].[MEMBER_CAPTION]]] as varchar), ' Все станции') as station,
 [[Measures]].[id]]] as id_st,
 [[Measures]].[Вагоны нрст]]] as vag_m,
cast([[Measures]].[Вес нрст]]] as decimal( 10 ,  2 )) as tn_m,
into #a
from openrowset('MSOLAP.2','Provider=MSOLAP.2; Persist Security Info=True;User ID=sa;Data Source=localhost; Initial Catalog=KSARM;Client Cache Size=25;Auto Synch Period=10000' , 
'with member [Measures].id as '' [Станция погр].Properties("key")''
select {id,[Measures].[Вагоны нрст], [Measures].[Вес нрст], [Measures].[Вагоны], [Measures].[Вес_т], [Measures].[Вагоны сред], [Measures].[Вес сред],
[Measures].[План ваг], [Measures].[План тонн], [Measures].[Заказ ваг], [Measures].[Заказ тн]} on columns,
Filter([Станция погр].AllMembers, [Measures].[Вагоны нрст]>0) on rows
from [Погрузка]
where [Дата].[Все Даты].[2006].&[10].[19]') 

select
  1  as Tag,
 Null as Parent,
  nod as [Nod! 1 !nod],  
 null as [Region! 2 !region],
 null as [Station! 3 !station],
  null as [Station! 3 !vag_m!element],
 null as [Station! 3 !tn_m!element],
 from #a

union 
select
 2 ,
 1 ,
nod,
region,
null,null,null
from #a

union
select
 3 , 2 ,
nod, region,
station,vag_m,tn_m
from #a
order by  nod,[Region! 2 !region]
for xml explicit
drop table #a
Подскажите, как мне получить второй вид
...
Рейтинг: 0 / 0
Интересный xml
    #34311215
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе именно на sql нужно или на xslt подойдет?
...
Рейтинг: 0 / 0
Интересный xml
    #34312207
NNika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужен был sql.
Но проблему уже решили. Переписали запрос таким образом, чтобы не использовать оператор union, который портил порядок следования xml-тэгов, т.к. данные, кторые мы получали из olap-сервера были упорядочены как надо.Мы вручную проставили значения Tag и Parent, для каждого уровня вложенности и применили for xml explicit и xml построился так как надо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Интересный xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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