Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как удалить из XML неправильные символы? / 8 сообщений из 8, страница 1 из 1
19.05.2008, 12:14
    #35320254
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
Ситуация следующая. У меня есть XML файл. При обработке этого файла библиотекой Interop.SQLXMLBULKLOADLib.dll выдается следующая ошибка: Illegal XML character.

Причина этого в том, что в XML есть вещи вроде
Код: plaintext
  <DESCR>Date is modified December- 8  ЎўЁ¦¤Ї<№С¬·ЙҐЏв§Ђµїђћ™®</DESCR>

Как избавиться от подобных значений и символов?
Есть ли программа, "нормализующая" XML таким образом?

Меня устроило, если бы, скажем, там стало
Код: plaintext
  <DESCR>Date is modified December- 8  _________________________</DESCR>

P.S. XML файл > 100 Мб.
...
Рейтинг: 0 / 0
19.05.2008, 15:00
    #35320907
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
1) попытаться определить, что это за кодировка (очень похожа на cp866) и прописать ее в заголовке
2) написать софтину которая читает файл и определенные символы заменяет на _
Вот тебе код на Delphi (пишу прямо здесь, так, что могут быть неточности)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 var 
  Ch: Char;
 begin 
   with  TFileStream.Create('FileName', fmOpenReadWrite)  do 
   try 
     while  Read(Ch, SizeOf(Ch)) = SizeOf(Ch)  do   begin 
       if  Ch > # 128   then   begin 
        Ch := '_';
        Seek(- 1 , soFromCurrent);
        Write(Ch, SizeOf(Ch));
       end ;
     end ;
   finally 
    Free;
   end ;
 end ;

С уважением, Vasilisk
...
Рейтинг: 0 / 0
19.05.2008, 17:11
    #35321469
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
Там седьмым символом идёт <
...
Рейтинг: 0 / 0
19.05.2008, 17:26
    #35321513
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
То, что там седьмым символом идёт <, это понятно... это тоже illegal symbol.

_Vasilisk_, спасибо!

Лично я решил проблему немного иным образом, примерно это выглядит так:
Код: plaintext
1.
2.
3.
4.
char [] temp0 = new char[] {'Ў','ў','Ё','¦','¤','Ї','№','<','>','С','¬','·','Й','Ґ','Џ','в','§','Ђ','µ','ї','ђ','ћ','™','®','©','г','њ','‡'};
if (content.IndexOfAny(temp0) != - 1 )
...
   Regex.Replace(str,@"[^( 0-9A-z#!\?.;:\-/%\^*~@$&)]", "_");
  

(Пробовал менять кодировку — не прокатило.)
...
Рейтинг: 0 / 0
19.05.2008, 19:56
    #35321804
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
А Вы не зарубите так XML разметку? Имеется в виду замена сивлов < и >
Код: plaintext
<root><node1>dfg<Node2>ghgf</Node2>ffffffff</node1></root>
Вполне валидный документ

С уважением, Vasilisk
...
Рейтинг: 0 / 0
21.05.2008, 08:37
    #35324971
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
Замечание справедливое. В моем конкретном случае разметку я не зарублю, но вообще следует тут быть осторожным...
...
Рейтинг: 0 / 0
21.05.2008, 14:49
    #35326249
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
вручную, что ли, хмлник собираешь?
...
Рейтинг: 0 / 0
21.05.2008, 16:23
    #35326645
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить из XML неправильные символы?
Нет, правлю XML, в который вкрались ошибки. Как они туда попали, я понятия не имею...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как удалить из XML неправильные символы? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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