Odin | База знаний 1С

Как извлечь текст и...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как получить тело текста 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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для извлечения текста из тега `` в строке 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



   
ОтветитьЦитата