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

Откуда:
Сообщений: 184
Доброго времени суток. Пытаюсь написать скрипт который будет парсить ХML с саита. ХML выглядит следующим образом :

<List>
<Data>
<input1>1004519827</input1>
<input2></input2>
<date>21/10/2013</date>
<explanation>&#304;&#351;lem.</explanation>
</Data>
<Data>
<input1>1004519827</input1>
<input2></input2>
<date>16/9/2013</date>
<explanation>&#304;&#351;lem.</explanation>
</Data>
</List>


В <explanation>??lem.</explanation> написан Islem только "Is" турецкими буквами , форум не может понять букв
Скрипт выглядит следующим образом :
Declare @Object as Int; 
Declare @ResponseText varchar(8000); 
Declare @Url as Varchar(MAX); 

 select @Url = 'http://myurl/myval.ashx?command=Cancel&from=25.10.2013&to=25.10.2013'
	
    Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; 
    Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false' 
    Exec sp_OAMethod @Object, 'send' 
    Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT      
    Exec sp_OADestroy @Object   
    declare @xml xml
    set @xml = CAST(@ResponseText as xml)
     select @xml.value('(//List/Data/input1)[1]','varchar(50)') 


При запуске скрипта выдает ошибку : illegal xml character думаю из-за İşlem турецкого , но как решить проблему ? XML файл в UTF-8 пробовал в UTF - 16 тоже не помоголо
28 окт 13, 16:19    [15042026]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Glory
Member

Откуда:
Сообщений: 104760
Declare @ResponseText nvarchar(4000);
28 окт 13, 16:22    [15042042]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
nvarchar() пробовали?
28 окт 13, 16:22    [15042044]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
NewBie77
Member

Откуда:
Сообщений: 184
nvarchar(4000) пробовал , выдает ошибку unable to switch the encoding
28 окт 13, 16:24    [15042054]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewBie77
выдает ошибку unable to switch the encoding

Значит ваш xml содержит больше, чем вы показали
28 окт 13, 16:26    [15042060]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
NewBie77
Member

Откуда:
Сообщений: 184
Glory,
что посоветуете ? я как понял 4000 не хватает , однако XML файл может еще вырасти
28 окт 13, 16:29    [15042073]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewBie77
я как понял 4000 не хватает

Вам не хватает информативности.
Ваш XML содержит строку с encoding, которую вы не показали.
28 окт 13, 16:32    [15042087]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
< xml .... >

заголовок из ответа убирайте
28 окт 13, 16:34    [15042100]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
вот этого там не должно быть

<?xml version="1.0" encoding="utf-8"?>
28 окт 13, 16:36    [15042109]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
NewBie77
Member

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

Сам XML на саите выглядит так как я показал только там много информации аналогичных :
<List>
<Data>
<input1>1004519827</input1>
<input2></input2>
<date>21/10/2013</date>
<explanation>&#304;&#351;lem.</explanation>
</Data>
<Data>
<input1>1004519827</input1>
<input2></input2>
<date>16/9/2013</date>
<explanation>&#304;&#351;lem.</explanation>
</Data>
<Data>
........
........
</Data>
<Data>
........
........
</Data>
<Data>
........
........
</Data>
</List>


а когда в скрипте пишу select @ResponseText то добавляется строка
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
28 окт 13, 16:41    [15042143]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
NewBie77
Member

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

Я новенький в sql не могли бы вы подсказать как ? Используя substring или Left?
28 окт 13, 16:42    [15042152]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewBie77
Сам XML на саите выглядит так как я показал только там много информации аналогичных :

Потому что _отображать_ содержимое можно по-всякому

NewBie77
а когда в скрипте пишу select @ResponseText то добавляется строка

xml в MSSQL всегда в UTF-16
28 окт 13, 16:44    [15042160]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
да хоть replace()
28 окт 13, 16:44    [15042164]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка : illegal xml character  [new]
NewBie77
Member

Откуда:
Сообщений: 184
Konst_One,Glory огромное вам спасибо , получилось
28 окт 13, 16:51    [15042198]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить