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

Откуда:
Сообщений: 207
Здравствуйте!

Не могу никак распарсить таблицу в SQL 2000!
Все правильно, но глюк возникает из-за того, что в тегах написано:
<ns0:Rows xmlns:ns0="www.firma.biz>
<Row xmlns="www.firma.biz">

Как решить эту проблему??? Нужно именно с этими тегами.


DECLARE @xml       xml;
DECLARE @docHandle int;

SET @xml = 
'<ns0:Rows xmlns:ns0="www.firma.biz>
 <Row xmlns="www.firma.biz">
    <num>1000082317</num>
    <doc>1000082317/2009042</doc>
    <date>2009-04-10T00:00:00+04:00</date>
  </Row> 
</ns0:Rows>';

EXEC sp_xml_preparedocument 
	@docHandle OUTPUT, 
	@xml

   SELECT * FROM OPENXML (@idoc, N'/ns0/Row ', 2)
	          WITH ( 	
					num [char](10) ,
					doc [char](24) ,
					date datetime )

EXEC sp_xml_removedocument @docHandle 
10 июн 09, 17:55    [7287202]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
M0us
Member

Откуда: Moscow
Сообщений: 883
xml-контент невалидный.
tsql-код нерабочий.
приведите более "пряморукий" пример - вам помогут с пространством имен.
10 июн 09, 18:04    [7287253]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
DECLARE @xml       xml;
DECLARE @docHandle int;

SET @xml = 
'<ns0:Rows xmlns:ns0="www.firma.biz">
 <Row xmlns="www.firma.biz">
    <num>1000082317</num>
    <doc>1000082317/2009042</doc>
    <date>2009-04-10T00:00:00+04:00</date>
  </Row> 
</ns0:Rows>';

EXEC sp_xml_preparedocument 
	@docHandle OUTPUT, 
	@xml, '<Rows xmlns:x="www.firma.biz" />'

   SELECT * FROM OPENXML (@docHandle, N'/x:Rows/x:Row ', 2)
	          WITH ( 	
					[num] [char](10) 'x:num',
					[doc] [char](24) 'x:doc',
					[date] varchar(30) 'x:date')

EXEC sp_xml_removedocument @docHandle 
10 июн 09, 18:35    [7287372]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
vino
Member

Откуда:
Сообщений: 1191
M0us, например, такой
DECLARE @xml       nvarchar(1000);
DECLARE @docHandle int;

SET @xml = 
'<ns0:Rows xmlns:ns0="www.firma.biz">
 <Row xmlns="www.firma.biz">
    <num>1000082317</num>
    <doc>1000082317/2009042</doc>
    <date>2009-04-10T00:00:00+04:00</date>
  </Row> 
</ns0:Rows>';

EXEC sp_xml_preparedocument @docHandle OUTPUT, @xml

	SELECT * FROM OPENXML (@docHandle, N'/Rows/Row',2)
		WITH ( 	
		num [nvarchar](10) ,
		doc [nvarchar](24) ,
		date datetime )

EXEC sp_xml_removedocument @docHandle 
ни ошибки ни содержимого элементов
10 июн 09, 18:38    [7287390]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
vino
Member

Откуда:
Сообщений: 1191
Mnior,кстати, а как сконвертить date в тип datetime, а не строку
10 июн 09, 18:42    [7287408]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
RussianForce
Member

Откуда:
Сообщений: 207
M0us
xml-контент невалидный.
tsql-код нерабочий.
приведите более "пряморукий" пример - вам помогут с пространством имен.


Этот XML возвращает одна прога - БизТолк. Поэтому XML не изменить... В этом то весь и прикол.
11 июн 09, 09:17    [7288374]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная вещь, при распарсивании XML...  [new]
M0us
Member

Откуда: Moscow
Сообщений: 883
RussianForce
M0us
xml-контент невалидный.
tsql-код нерабочий.
приведите более "пряморукий" пример - вам помогут с пространством имен.


Этот XML возвращает одна прога - БизТолк. Поэтому XML не изменить... В этом то весь и прикол.


хм. я просто удивился, что ваш "псевдо-xml" в строке
<ns0:Rows xmlns:ns0="www.firma.biz>
не имеет закрывающей кавычки у атрибута @ns0.
11 июн 09, 10:50    [7288915]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить