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

Откуда:
Сообщений: 165
Доброго времени суток.

проскажите как прочитать XML. Выполняю следующий код
DECLARE  @idoc INT

Declare @XmlDoc VARCHAR(8000)
SET @XmlDoc  ='<?xml version="1.0" encoding="utf-8"?><File><name>1231</name><name>1234</name></File>'
EXECUTE sp_xml_preparedocument @idoc OUTPUT, @XmlDoc
IF @@ERROR<>0
 BEGIN
  SELECT 1 AS RetCode, 'Ошибка приема заявки' AS Msg
  --RETURN -1
 END
SELECT    *
--INTO #Req
FROM       OPENXML (@idoc, '/File',1)

WITH (

Name varchar(128))

Результат NULL, подскажите как сделать что бы в результате было
1231
1234
10 фев 10, 11:38    [8322132]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
daw
Member

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

> Результат NULL, подскажите как сделать что бы в результате было

xml чувствителен к регистру. Name и name - это разные теги.

Posted via ActualForum NNTP Server 1.4

10 фев 10, 11:46    [8322195]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
AntonDemin
Member

Откуда:
Сообщений: 165
daw,

c name тоже NULL
10 фев 10, 11:47    [8322205]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
daw
Member

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

а еще element-centric mapping надо потому что.

'/File',2)

Posted via ActualForum NNTP Server 1.4

10 фев 10, 11:49    [8322226]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
daw
Member

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

а чтоб все name получить надо в rowpattern до него путь и прописывать
SELECT    *
--INTO #Req
FROM       OPENXML (@idoc, '/File/name',2)

WITH (

name varchar(128) '.')

Posted via ActualForum NNTP Server 1.4

10 фев 10, 11:52    [8322256]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
AntonDemin
Member

Откуда:
Сообщений: 165
daw,

Выдал только 1231.
10 фев 10, 11:53    [8322260]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
AntonDemin
Member

Откуда:
Сообщений: 165
AntonDemin,

Спасибо, все заработало
10 фев 10, 11:55    [8322281]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
Ниггадяй
Member

Откуда: Узбекистан, Ташкент
Сообщений: 247
Используйте XQuery.


Declare @XmlDoc xml

SET @XmlDoc ='<?xml version="1.0" encoding="utf-8"?>
<File>
<name>1231</name>
<name>1234</name>
</File>';

select x.value('.', 'nvarchar(256)') from @XmlDoc.nodes('/File/name') R(x)
10 фев 10, 11:56    [8322287]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
Залётный
Guest
AntonDemin
daw,

Выдал только 1231.

блин!
ну написали же вам уже все:
name varchar(128) '.')
10 фев 10, 11:56    [8322295]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
AntonDemin
Member

Откуда:
Сообщений: 165
daw,

Подскажите в чем проблема, если подаю такой XML

DECLARE  @idoc INT

Declare @XmlDoc VARCHAR(8000)
SET @XmlDoc  ='<?xml version="1.0" encoding="utf-8"?><File><name>Слово</name></File>'
EXECUTE sp_xml_preparedocument @idoc OUTPUT, @XmlDoc
IF @@ERROR<>0
 BEGIN
  SELECT 1 AS RetCode, 'Ошибка' AS Msg
  
 END
SELECT   0 AS rid,*

FROM       OPENXML (@idoc, '/File/name',2)

WITH (

name varchar(128) '.')

Вылетает ошибка

Msg 6603, Level 16, State 1, Procedure sp_xml_preparedocument, Line 5
XML parsing error: An invalid character was found in text content.
10 фев 10, 13:12    [8322981]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 1410
AntonDemin,

у вас в заголовке XML указано "utf-8" а в теле xml слово в виндовой кодировке:)
10 фев 10, 13:32    [8323180]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как прочитать XML  [new]
daw
Member

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

> Msg*6603*,Level *16*, State*1*,Procedure sp_xml_preparedocument, Line*5*
> XML parsing error: An invalidcharacter was foundin text content.

в заголовке указано encoding="utf-8", а в переменной текст в windows-1251 хранится.

Posted via ActualForum NNTP Server 1.4

10 фев 10, 13:33    [8323193]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить
 
Лучший учебный центр Microsoft!
Новейшие курсы Microsoft SQL Server 2014!
Статус Academy Oracle. Очень привлекательные цены на курсы Oracle!
Отсрочка платежа или скидка 5% на комплексные программы!