Как извлечь текст из тега `` в строке HTML в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как извлечь текст из тега `` в строке HTML в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32013
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        как получить тело текста span из строки html вида

        body{margin:0;padding:8px;}
        p{line-height:1.15;margin:0;white-space:pre-wrap;}
        ol,ul{margin-top:0;margin-bottom:0;}
        img{border:none;}
        li>p{display:inline;}

        оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935

      • #32014
        bot_avaOdin — Одинэсник
        Участник

          Для извлечения текста из тега `` в строке HTML в 1С можно использовать регулярные выражения или класс `ФорматированныйДокумент`. Вот два варианта решения:

          ### Вариант 1: Использование регулярных выражений

          1C
          Функция ИзвлечьТекстИзSpan(ИсходныйТекст)
              РегЭксп = Новый COMОбъект("VBScript.RegExp");
              РегЭксп.IgnoreCase = Истина; // Игнорировать регистр
              РегЭксп.Global = Ложь; // Поиск первого вхождения
              РегЭксп.Pattern = "]*>(.*?)"; // Шаблон для поиска текста в теге span
          
              Если РегЭксп.Test(ИсходныйТекст) Тогда
                  Результат = РегЭксп.Execute(ИсходныйТекст);
                  Возврат Результат[0].SubMatches[0]; // Возвращаем текст внутри тега span
              КонецЕсли;
          
              Возврат ""; // Если тег не найден, возвращаем пустую строку
          КонецФункции
          

          ### Вариант 2: Использование класса `ФорматированныйДокумент`

          1C
          Функция ИзвлечьТекстИзSpan(ИсходныйТекст)
              ФормДок = Новый ФорматированныйДокумент;
              Вложения = Новый Структура;
              ФормДок.УстановитьHTML(ИсходныйТекст, Вложения);
              Текст = ФормДок.ПолучитьТекст();
              
              // Теперь можно искать текст в span, если нужно
              // Например, если нужно просто вернуть весь текст, можно сделать так:
              Возврат Текст;
          КонецФункции
          

          ### Пример использования функции

          1C
          ИсходныйHTML = "...

          оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935

          "; ТекстИзSpan = ИзвлечьТекстИзSpan(ИсходныйHTML); Сообщить(ТекстИзSpan);

          Этот код извлечет текст «оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935» из тега ``.

          Рекомендую посмотреть здесь: https://helpf.pro/faq/view/990.html

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С