Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

[Delphi] Доработка библиотеки HTMLp (библиотека для парсинга)


    Еще 2 ставки скрыты
    1 ставка скрыта
  • Профиль удален
    29 января 2020, 1:59 |

    Яка знайома проблема, аж скупа чоловіча сльоза на ясні очі навернулась.

    Значить, рішень у вас рівно два: 

    - визначаєте тег, вміст якого вважаєте "шлаком", і ніяк не парсите, просто шукаєте закриваючий тег вліво.

    - парсите ВСЕ до перемоги.

    В обох випадках маєте "прелесті" із спотиканнями парсера ранійше ніж потрібно (перший випадок) і шлак на вихлопі, або пізнійше ніж потрібно (другий випадок, за умови порушення консистентності тегів) із забитим стеком, витоками пам'яті, незакритими розгалуженнями при додавання чайлдів і т.д. і т.п.


    Як вихід бачу попередню валідацію консистенстності за стратегією "парсим ВСЕ" (включаючи script та ін, вважаючи їх так само деревовидними), і у випадку спотикання ігнорим ВСЕ, тикаючи вказівник де відбулась неконсистентність.


    Якщо незрозуміло висловився - питайте в ПП.

  • Владимир Б.
    29 января 2020, 21:43 |

    Добрый вечер.

    Это мысли относительно внесения изменений именно в данную библиотеку, или о решении проблемы в общем?

  • Профиль удален
    30 января 2020, 4:25 |

    І те і друге одночасно. Справа в тому, що якщо ви збираєтесь ігнорувать вміст якоїсь ноди, ви всеодно мусите її розпарсить, інакше не отримаєте що саме ігнорувати. Якщо парсер розбирає текст нормально, проблем немає (хіба затрати часу), якщо текст нормально НЕ розбирається, то його і НЕ слід розбирати на складові, бо інформація про структуру в ньому ВТРАЧЕНА. Дана реалізація не стійка, тому що сходу намагається розбирати на іерархію, і щось йде не так.

    Вихід: розбить на два етапи - розібрать структуру, і тільки потім, якщо не було проблем, розбирать на токени.

Актуальные фриланс-проекты в категории Десктопные приложения

Добавить паузы 10-30 секунд между отправками писем

Здравствуйте! Ищу опытного программиста 1С / BAS (BAF) для оперативного решения технической проблемы с почтовой рассылкой.Суть проблемы: Используем бухгалтерскую программу BAF (Business Automation Framework), редакция 2.0. Раз в месяц возникает необходимость массово отправлять…

Веб-программированиеДесктопные приложения ∙ 3 дня 19 часов назад ∙ 10 ставок

Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)

1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная…

C и C++Десктопные приложения ∙ 4 дня 7 часов назад ∙ 5 ставок

Модификация в работе эмулятора

2000 UAH

Здравствуйте. Я скачал с Интернета эмулятор игрового автомата gaminator cf final. Он мне очень понравился, но там есть недочёты. Есть админ панель, но она открывается свободно, но не закрывается вообще. Закрывается только вместе с приложением. А данные, после изменения в админ…

Десктопные приложения ∙ 11 дней 21 час назад ∙ 10 ставок

Заказчик
Владимир Б.
Украина Украина  3  0
Проект опубликован
6 лет назад
80 просмотров
Метки