Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / чтение xml с namespace и стилями / 14 сообщений из 14, страница 1 из 1
05.02.2020, 12:43
    #39922782
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
Код: sql
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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
declare @xml_temp xml = '<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook
  xmlns:x="urn:schemas-microsoft-com:office:excel"
  xmlns="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">

<Styles>
 <Style ss:ID="Default" ss:Name="Normal">
  <Alignment ss:Vertical="Bottom"/>
  <Borders/>
  <Font/>
  <Interior/>
  <NumberFormat/>
  <Protection/>
 </Style>
 <Style ss:ID="s27">
  <Font x:Family="Swiss" ss:Color="#0000FF" ss:Bold="1"/>
 </Style>
 <Style ss:ID="s21">
  <NumberFormat ss:Format="yyyy\-mm\-dd"/>
 </Style>
 <Style ss:ID="s22">
  <NumberFormat ss:Format="yyyy\-mm\-dd\ hh:mm:ss"/>
 </Style>
 <Style ss:ID="s23">
  <NumberFormat ss:Format="hh:mm:ss"/>
 </Style>
</Styles>

<Worksheet ss:Name="Sheet1">
  <ss:Table>
   <ss:Row>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">indx</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">sys_data</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">my_tag</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">MY_INN</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">Number_dela</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CRM_CODE</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">My_type</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">IsActive</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">loc_summ</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CaseTypeCode</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">PUNKT_CODE</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">RegistrationDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CloseDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CaseCategory</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">My_flg</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">sourceSystem</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">aproved</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">aprovedUser</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">aprovedDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">RESULT</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">RESULTCODE</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">FLG_ALL</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">ChangeDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">FindDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">ChangedProperty</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">NewValue</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">OldValue</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">LastDoc_date</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">LastDoc_Description</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CrmDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">CrmAnswer</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">finalAproved</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">finalAprovedUser</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">finalAprovedDate</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">cur_data</Data></ss:Cell>
    <ss:Cell  ss:StyleID="s27"><Data ss:Type="String">ins_data</Data></ss:Cell>
   </ss:Row>
<ss:Row>
    <ss:Cell><Data ss:Type="Number">136</Data></ss:Cell>
    <ss:Cell ss:StyleID="s22"><Data ss:Type="DateTime">2019-07-23T00:00:00.000</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">CRM_BC</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">77242</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">SUMMA</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">1.1</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">Истец</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">Активно</Data></ss:Cell>
    <ss:Cell><Data ss:Type="Number">3248327.18</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">1.1</Data></ss:Cell>
    <ss:Cell ss:StyleID="s22"><Data ss:Type="DateTime">2019-07-23T00:00:00.000</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String">взыскиваемой задолжности превышает 10</Data></ss:Cell>
<ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="Number">2</Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell ss:StyleID="s22"><Data ss:Type="DateTime">2019-07-23T00:00:00.000</Data></ss:Cell>
<ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
    <ss:Cell><Data ss:Type="String"></Data></ss:Cell>
   </ss:Row>
</ss:Table>
 </Worksheet>
</Workbook>'
;WITH XMLNAMESPACES 
(  
   'urn:schemas-microsoft-com:office:excel' AS x,  
   'urn:schemas-microsoft-com:office:spreadsheet' AS ss
) 
select @xml_temp.query('Workbook/Worksheet/ss:Table/ss:Row')



подскажите пожалуйста, как прочитать Row из такого xml
...
Рейтинг: 0 / 0
05.02.2020, 12:56
    #39922800
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
и почему-то если удалить в самом начале
Код: xml
1.
xmlns="urn:schemas-microsoft-com:office:spreadsheet"


то что-то будет возвращаться.
...
Рейтинг: 0 / 0
05.02.2020, 12:57
    #39922803
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
Код: sql
1.
2.
3.
4.
5.
6.
select @xml_temp.query('declare namespace ss="urn:schemas-microsoft-com:office:spreadsheet"; /ss:Workbook/ss:Worksheet/ss:Table/ss:Row');

with xmlnamespaces(default 'urn:schemas-microsoft-com:office:spreadsheet')
 select @xml_temp.query('/Workbook/Worksheet/Table/Row');

select @xml_temp.query('/*:Workbook/*:Worksheet/*:Table/*:Row');
...
Рейтинг: 0 / 0
05.02.2020, 12:58
    #39922805
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec,

Код: sql
1.
2.
3.
4.
5.
SELECT @xml_temp.query('  
	 declare namespace ss="urn:schemas-microsoft-com:office:spreadsheet";  
	 declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet";
        /Workbook/Worksheet/ss:Table/ss:Row
    ') as x  
...
Рейтинг: 0 / 0
05.02.2020, 13:11
    #39922813
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
Спасибо!!! всё красиво.
А можно сделать так, чтобы первую Row (в которой название колонок) не брать ?
...
Рейтинг: 0 / 0
05.02.2020, 13:37
    #39922824
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec
А можно сделать так, чтобы первую Row (в которой название колонок) не брать ?
Код: sql
1.
select @xml_temp.query('...Row[position() > 1]');
...
Рейтинг: 0 / 0
05.02.2020, 13:43
    #39922829
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
invm
NewIvanovec
А можно сделать так, чтобы первую Row (в которой название колонок) не брать ?
Код: sql
1.
select @xml_temp.query('...Row[position() > 1]');



вау!

мне понравилось, можно ещё вопрос :)

чтобы взять только то, что между тэгами Data
Код: xml
1.
<Data xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" ss:Type="Number">136</Data>



чтобы взять только то, что между тэгами Data, что нужно добавить, подскажите пожалуйста
Код: sql
1.
2.
3.
4.
5.
SELECT @xml_temp.query('  
	 declare namespace ss="urn:schemas-microsoft-com:office:spreadsheet";
	 declare namespace x="urn:schemas-microsoft-com:office:excel";  
	 declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet";
        /Workbook/Worksheet/ss:Table/ss:Row[position() > 1]/Cell[1]/ss:Data') as x 
...
Рейтинг: 0 / 0
05.02.2020, 13:54
    #39922839
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec,

Код: sql
1.
2.
3.
4.
5.
SELECT @xml_temp.query('  
	 declare namespace ss="urn:schemas-microsoft-com:office:spreadsheet";
	 declare namespace x="urn:schemas-microsoft-com:office:excel";  
	 declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet";
        /Workbook/Worksheet/ss:Table/ss:Row[position() > 1]/Cell[1]/ss:Data/text()') as x 
...
Рейтинг: 0 / 0
05.02.2020, 14:26
    #39922864
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
entrypoint
NewIvanovec,

Код: sql
1.
2.
3.
4.
5.
SELECT @xml_temp.query('  
	 declare namespace ss="urn:schemas-microsoft-com:office:spreadsheet";
	 declare namespace x="urn:schemas-microsoft-com:office:excel";  
	 declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet";
        /Workbook/Worksheet/ss:Table/ss:Row[position() > 1]/Cell[1]/ss:Data/text()') as x 



то, что нужно, но только для одной строки.
но если убрать [position() > 1] или , предположим, будет несколько строк, то получится, что все строки будут в одной ячейке.
а я хотел бы, чтобы все строки не сжимались в одну строку
...
Рейтинг: 0 / 0
05.02.2020, 14:51
    #39922893
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec,

Код: sql
1.
2.
3.
4.
select
 t.n.value('.', 'varchar(200)')
from
 @xml_temp.nodes('declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet"; /Workbook/Worksheet/Table/Row[position() > 1]/Cell/Data') t(n);
...
Рейтинг: 0 / 0
05.02.2020, 15:07
    #39922911
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
invm
NewIvanovec,

Код: sql
1.
2.
3.
4.
select
 t.n.value('.', 'varchar(200)')
from
 @xml_temp.nodes('declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet"; /Workbook/Worksheet/Table/Row[position() > 1]/Cell/Data') t(n);



снимаю шляпу!

но можно ли ещё чуть-чуть улучшить, чтобы
было так:
Код: html
1.
2.
indx	sys_data	            my_tag
136	2019-07-23 00:00:00	CRM_BC
...
Рейтинг: 0 / 0
05.02.2020, 15:08
    #39922917
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec
invm
NewIvanovec,

Код: sql
1.
2.
3.
4.
select
 t.n.value('.', 'varchar(200)')
from
 @xml_temp.nodes('declare default element namespace "urn:schemas-microsoft-com:office:spreadsheet"; /Workbook/Worksheet/Table/Row[position() > 1]/Cell/Data') t(n);



снимаю шляпу!

но можно ли ещё чуть-чуть улучшить, чтобы
было так:
Код: html
1.
2.
indx	sys_data	        my_tag
136	2019-07-23 00:00:00	CRM_BC



до этого было всё в одной ячейке, а сейчас получается всё в одной строке.
...
Рейтинг: 0 / 0
05.02.2020, 15:16
    #39922933
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
NewIvanovec,

Озвучьте уже сразу все хотелки.
...
Рейтинг: 0 / 0
05.02.2020, 15:17
    #39922935
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение xml с namespace и стилями
invm
NewIvanovec,

Озвучьте уже сразу все хотелки.

:)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / чтение xml с namespace и стилями / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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