172 похожих чатов

Подскажите библиотеку и пример парсинга HTML из String, редактирования тега

и сериализацию обратно в строку.

И чтобы отлавливало отсуствие закрывающего тега и закрывало его в идеале.

Посмотрел несколько либ, то одного не хватает то другого 🤦‍♀️ то теги ищет по строгому соответствию 😂 ("div" <> "DIV") хоть вручную делай 😂😂😂

Может кто сталкивался?

7 ответов

8 просмотров

берешь это: https://www.html-tidy.org/developer/ делаешь биндинги: https://medium.com/dwelo-r-d/using-c-libraries-in-rust-13961948c72a https://medium.com/dwelo-r-d/wrapping-unsafe-c-libraries-in-rust-d75aeb283c65 прогоняешь свою строку с битым html через html tidy, дальше выхлоп парсишь своим любимым парсером

Valeriy-Grazhdankin Автор вопроса
Marat
берешь это: https://www.html-tidy.org/developer/ ...

Спасибо. Если есть путь прямее, также сильно обрадуюсь 😂

Valeriy Grazhdankin
Спасибо. Если есть путь прямее, также сильно обрад...

в твоей задаче даже не надо весь libtidy апи заворачивать (а он там богатый), достаточно только функций, используемых в Sample Program

Valeriy-Grazhdankin Автор вопроса
Marat
в твоей задаче даже не надо весь libtidy апи завор...

Я уже изучаю, вижу tidyCleanAndRepair()... Думал, честно говоря что что-то подобное уже наши написали родное, просто я в крейтах не докопался до нужной либы пока ...

Valeriy Grazhdankin
Я уже изучаю, вижу tidyCleanAndRepair()... Думал, ...

Ну как простой вариант - запускать htmltidy, где-то видел и такое

Valeriy-Grazhdankin Автор вопроса
Marat
Ну как простой вариант - запускать htmltidy, где-т...

Это гемор. Я из базы SQL дергаю поля, чиню, правлю и обоатно кладу. Хочу простую cli запилить чтобы потом оениться в полный рост.

Valeriy-Grazhdankin Автор вопроса
Marat
в твоей задаче даже не надо весь libtidy апи завор...

Сделал нативно, допилил напильником чью-то */domx с github чтобы мутабельное дерево обрабатывать. Забираю из MySQL базы поля с контентом, чиню, заменяю ссылки href и src на нужные префиксы и кладу обратно. Смех в том, что на сайте обнаружилась тонна скрытых div со ссылками на всякое говно - короче сайт ломанули давно, дыры закрыли а мусор остался. Соответственно добавил зачистку скрытых div у которых в style есть "hidden;". Особо оптимизацией не заморачивался тк это была разовая акция но вышло норм, все ссылки починились, картинки показываются. Спасибо!

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта