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

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