Вход | Регистрация
 

1с 7.7 Проверка недопустимых символов XML

1с 7.7 Проверка недопустимых символов XML
Я
   dimm7310
 
08.06.20 - 09:20
Имеется выгрузка на сайт данных о товарах.
Формирование XML на основе objXML = CreateObject("MSXML2.DOMDocument");
Видимо где-то в в выгружаемых данных есть недопустимые символы . К сожалению в 7.7 нет штатной НайтиНедопустимыеСимволыXML().
Может быть есть какие - то способы , что бы анализировать строку (например наименования товаров) перед выгрузкой ?
   ДенисЧ
 
1 - 08.06.20 - 09:22
Найти() из 77 уже выпилили?
   NorthWind
 
2 - 08.06.20 - 09:27
Не претендую на то что решает все возможные проблемы, но мне помогло.

Функция СтрокаHTML (ВхСтрока)
    
    Результат = ВхСтрока;
    
    МассивИзменений = Новый Массив;
    
    МассивИзменений.Добавить (Новый Структура ("Что,НаЧто", "&", "&")); 
    МассивИзменений.Добавить (Новый Структура ("Что,НаЧто", "<", "&lt;"));
    МассивИзменений.Добавить (Новый Структура ("Что,НаЧто", ">", "&gt;"));
    МассивИзменений.Добавить (Новый Структура ("Что,НаЧто", """", "&quot;"));
    МассивИзменений.Добавить (Новый Структура ("Что,НаЧто", "'", "&#39;"));

    
    Для Каждого Элем из МассивИзменений Цикл
        Результат = СтрЗаменить (Результат, Элем.Что, Элем.НаЧто);
    КонецЦикла;
    
    Возврат Результат;
    
КонецФункции
   dimm7310
 
3 - 08.06.20 - 09:28
(1) знать бы что искать, где взять список всех недопустымых символов XML
   dimm7310
 
4 - 08.06.20 - 09:29
(2) спасибо, попробую
   NorthWind
 
5 - 08.06.20 - 09:30
единственное что - для клюшек из нее надо будет выкинуть контейнеры. Ну это не проблема, думаю
   NorthWind
 
6 - 08.06.20 - 09:33
(3) там, кстати, может еще зависеть и от кодировки. Проблема может быть, например, в связи с тем что вы при формировании XML используете кодировку windows-1251, а при формировании сталкиваетесь с символами Unicode, которые не входят в CP-1251, и ваша программа ведет себя каким-то непредусмотренным образом при этом.
   dimm7310
 
7 - 08.06.20 - 10:11
"единственное что - для клюшек из нее надо будет выкинуть контейнеры." - что за контейнеры?
   NorthWind
 
8 - 08.06.20 - 10:14
(7) Контейнера "массив" в том виде, в котором он есть в восьмерке, в клюшках нет. Структуры тоже.
   ДенисЧ
 
9 - 08.06.20 - 10:15
(3) В стандарт XML заглянуть - не предлагать?
   dimm7310
 
10 - 08.06.20 - 10:25
(8) Это переделал (таблица значений)
   dimm7310
 
11 - 09.06.20 - 08:21
(2) не помогло, все выгружаемые строки фильтровал через функцию
   Злопчинский
 
12 - 09.06.20 - 11:31
ну сформируй иксемель. Открой браузером. получишь сообщение об ошибке. посмотришь глазками.
Проблема принципиальная в чем хотя бы для начала без всяких технологий и стандартов определить норма/ненорма и примерное место. и если глазами не видно - хекс-редактором отсмотреть...
?
или я чего-то не понимаю?
   NorthWind
 
13 - 09.06.20 - 14:40
(11) без файла сказать что-либо сложно.
   NorthWind
 
14 - 09.06.20 - 14:46
(3) в принципе, соответствуют таковым в HTML. Можно погуглить "список литералов HTML". Функция заменяет только основные, наиболее часто встречающиеся. Возможно, у вас более сложный случай.
   dimm7310
 
15 - 09.06.20 - 16:49
выяснилось то встречаются символы (стрелочка вправо)
   NorthWind
 
16 - 09.06.20 - 16:52
(15) в таком случае можно дописать мою функу в соответствии, например, с таблицами вот здесь http://webbuddy.ru/
   dimm7310
 
17 - 10.06.20 - 10:23
(16)  да, сделал заполнение ТЗ запрещенных символов с 1 -32 . Проверяю
Спасибо
   Franchiser
 
18 - 10.06.20 - 10:53
(17) где нашел список недопустимых символов? Тут не вижу:  http://webbuddy.ru/
   dimm7310
 
19 - 10.06.20 - 11:06
просто задал в цикле все символы с 1-32
   NorthWind
 
20 - 10.06.20 - 11:47
(18) Там сайт сделан так что на страницу по ссылке не перейдешь. Вверху справа выбрать HTML (там очень мелко, надо присмотреться), потом в меню слева уйти в самый конец, "HTML - литералы".
   Salimbek
 
21 - 10.06.20 - 12:57


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.