powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / чтение xml с namespace и стилями
14 сообщений из 14, страница 1 из 1
чтение xml с namespace и стилями
    #39922782
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
чтение xml с namespace и стилями
    #39922800
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и почему-то если удалить в самом начале
Код: xml
1.
xmlns="urn:schemas-microsoft-com:office:spreadsheet"


то что-то будет возвращаться.
...
Рейтинг: 0 / 0
чтение xml с namespace и стилями
    #39922803
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
чтение xml с namespace и стилями
    #39922805
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
чтение xml с namespace и стилями
    #39922813
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!! всё красиво.
А можно сделать так, чтобы первую Row (в которой название колонок) не брать ?
...
Рейтинг: 0 / 0
чтение xml с namespace и стилями
    #39922824
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec
А можно сделать так, чтобы первую Row (в которой название колонок) не брать ?
Код: sql
1.
select @xml_temp.query('...Row[position() > 1]');
...
Рейтинг: 0 / 0
чтение xml с namespace и стилями
    #39922829
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
чтение xml с namespace и стилями
    #39922839
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 
...
Рейтинг: 0 / 0
чтение xml с namespace и стилями
    #39922864
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
чтение xml с namespace и стилями
    #39922893
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);
...
Рейтинг: 0 / 0
чтение xml с namespace и стилями
    #39922911
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
чтение xml с namespace и стилями
    #39922917
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
чтение xml с namespace и стилями
    #39922933
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec,

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

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

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


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