Получить чистый текст из HTML, без скриптов и тегов в 1С
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Функция ПолучитьТекстИзHTML(Знач ТекстДляРазбора) Экспорт Результат = ""; Текст = НРег(ТекстДляРазбора); // отрезаем всё что не body Поз = Найти(Текст, "<body"); Если Поз > 0 Тогда Текст = Сред(Текст, Поз + 5); ТекстДляРазбора = Сред(ТекстДляРазбора, Поз + 5); Поз = Найти(Текст, ">"); Если Поз > 0 Тогда Текст = Сред(Текст, Поз + 1); ТекстДляРазбора = Сред(ТекстДляРазбора, Поз + 1); КонецЕсли; КонецЕсли; Поз = Найти(Текст, "</body>"); Если Поз > 0 Тогда Текст = Лев(Текст, Поз - 1); ТекстДляРазбора = Лев(ТекстДляРазбора, Поз - 1); КонецЕсли; // вырезаем скрипты Поз = Найти(Текст, "<script"); Пока Поз > 0 Цикл ПозЗакрывающегоТега = Найти(Текст, "</script>"); Текст = Лев(Текст, Поз - 1) + Сред(Текст, ПозЗакрывающегоТега + 9); ТекстДляРазбора = Лев(ТекстДляРазбора, Поз - 1) + Сред(ТекстДляРазбора, ПозЗакрывающегоТега + 9); Поз = Найти(Текст, "<script"); КонецЦикла; // вырезаем все теги Поз = Найти(Текст, "<"); Пока Поз > 0 Цикл Результат = Результат + Лев(ТекстДляРазбора, Поз-1); Текст = Сред(Текст, Поз + 1); ТекстДляРазбора = Сред(ТекстДляРазбора, Поз + 1); Поз = Найти(Текст, ">"); Если Поз > 0 Тогда Текст = Сред(Текст, Поз + 1); ТекстДляРазбора = Сред(ТекстДляРазбора, Поз + 1); КонецЕсли; Поз = Найти(Текст, "<"); КонецЦикла; Результат = Результат + ТекстДляРазбора; Возврат СокрЛП(Результат); КонецФункции |