Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Комрады , заподскажите по запросу к xml  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
DECLARE @xml xml
SET @xml='
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
  <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    <Author>xxx</Author>
    <LastAuthor>xxx</LastAuthor>
    <Created>2011-06-01T05:59:19Z</Created>
    <Version>14.00</Version>
  </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook>
  <WindowHeight>12585</WindowHeight>
  <WindowWidth>19155</WindowWidth>
  <WindowTopX>240</WindowTopX>
  <WindowTopY>60</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
</Workbook>
'


SELECT 
 c.n.value('local-name(.)','varchar(256)')
FROM @xml.nodes( 'Workbook/*') c(n)

Не выходит каменный цветок имён нод (((
朋友之间怎么能尔虞我诈、钩心斗角呢?
1 июн 11, 11:00    [10743560]     Ответить | Цитировать Сообщить модератору
 Re: Комрады , заподскажите по запросу к xml  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

;with xmlnamespaces (default 'urn:schemas-microsoft-com:office:spreadsheet')
SELECT
  c.n.value('local-name(.)','varchar(256)')
FROM @xml.nodes( 'Workbook/*') c(n)


Posted via ActualForum NNTP Server 1.4

1 июн 11, 11:05    [10743616]     Ответить | Цитировать Сообщить модератору
 Re: Комрады , заподскажите по запросу к xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Xml вы совсем не знаете.

DECLARE @xml xml
SET @xml='
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
  <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    <Author>xxx</Author>
    <LastAuthor>xxx</LastAuthor>
    <Created>2011-06-01T05:59:19Z</Created>
    <Version>14.00</Version>
  </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook>
  <WindowHeight>12585</WindowHeight>
  <WindowWidth>19155</WindowWidth>
  <WindowTopX>240</WindowTopX>
  <WindowTopY>60</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
</Workbook>
'

;WITH XMLNAMESPACES(default
	 'urn:schemas-microsoft-com:office:spreadsheet'
	,'urn:schemas-microsoft-com:office:office'	AS office
	,'urn:schemas-microsoft-com:office:excel'	AS excel)
SELECT	c.n.value('local-name(.)','varchar(256)')
FROM	@xml.nodes( 'Workbook/*') c(n)
1 июн 11, 11:06    [10743617]     Ответить | Цитировать Сообщить модератору
 Re: Комрады , заподскажите по запросу к xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Excel Spreadsheet собрались читать. А не замучаетесь? Там же 100500 вариантов, данные лежат боком, а ещё смещения учитывать для каждой ячейки. Титанический труд даже для простого случая. Не?

Интересно, а откуда проблема/задача?
Если приходит от извне, как источник данных, то не легче ли договорится (CSV формат)?
Лучше уж через провайдер считывать, или на крайняк OLE. Не?
1 июн 11, 11:14    [10743685]     Ответить | Цитировать Сообщить модератору
 Re: Комрады , заподскажите по запросу к xml  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Mnior
Excel Spreadsheet собрались читать. А не замучаетесь? Там же 100500 вариантов, данные лежат боком, а ещё смещения учитывать для каждой ячейки. Титанический труд даже для простого случая. Не?

Интересно, а откуда проблема/задача?
Если приходит от извне, как источник данных, то не легче ли договорится (CSV формат)?
Лучше уж через провайдер считывать, или на крайняк OLE. Не?


Задача импорта из ехеля по шаблонаам определеным корпоративны стандарто и они не сложные. В настоящее время обработка шита идёт с клиента но не нра гонять данные - проверка, нотификация, загрузка . рассматриваю вариант комплексной обработки на стороне сервера. Да и как самостоятельная задача введение в архитектуру ПО xml интересна . sp_OA недопустимы((. Вариант CLR сборки ещё есть.
1 июн 11, 11:43    [10743933]     Ответить | Цитировать Сообщить модератору
 Re: Комрады , заподскажите по запросу к xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Ken@t
Задача импорта из ехеля по шаблонаам определеным корпоративны стандарто
Еле фразу прочитал.

Т.е. у вас данные внутренне-корпоративные, может лучше сразу из источника брать.
Если руками заполняются, то стандарты до фени.
Если внешнее, то хреновое решение.
Т.к. жёсткие и прямые форматы, то 3x строчный convert-ер (на чём угодно) в CSV - то что доктор прописал.

Пишите, но только ради изучения. Ибо не эффективно и не надёжно, с любой стороны и точки зрения, как ни смотри.

Для изучения посмотрите в сторону XmlBulkLoad. XSD изучите. И в принципе можно написать XSD для импорта прямиком в таблу. Это хотя бы эффективнее. Если хотите.

[quot Ken@t]Вариант CLR сборки ещё есть.Слава богам.
Но т.к. файлы в регламенты, то лучше отдельная тулзой (мухи отдельно, котлеты отдельно).
1 июн 11, 12:16    [10744249]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить