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 |

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

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

Актуальні фриланс-проєкти в категорії Десктопні додатки

Інструмент звірки рахунків з банком, картами та бухгалтером

Технічне завдання: інструмент звірки рахунків з банком, картами та бухгалтеромЗагальна метаПотрібен локальний інструмент (скрипт/невеликий додаток на Python), який запускається вручну раз на 1-2 місяці на моєму комп'ютері і робить звірку між:Рахунками, які я виставив клієнтам і…

PythonДесктопні додатки ∙ 1 день 6 годин тому ∙ 37 ставок

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

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

Веб-програмуванняДесктопні додатки ∙ 6 днів 22 години тому ∙ 10 ставок

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

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

C та C++Десктопні додатки ∙ 7 днів 9 годин тому ∙ 6 ставок

Замовник
Владимир Б.
Україна Україна  3  0
Проєкт опублікований
6 років тому
80 переглядів
Мітки