@deleted-Alex222

Python: получить позицию открывающего/закрывающего тегов в HTML файле?

Есть html file, есть позиция каретки NLine:NCol, каретка попадает внутрь html тега, например это <table .............>.
Как получить границы открывающего тега "table" и границы закрывающего тега "/table" (позиции от уг. скобки до уг. скобки)?

Учтем, что внутри тега может быть много вложенных таких же-- простой поиск по регулярке не пойдет.

Какой либой это сделать в Питон 3, и с примером, пож-та.
  • Вопрос задан
  • 2596 просмотров
Пригласить эксперта
Ответы на вопрос 1
Я правильно понимаю, что курсор оказывается между открывающей и закрывающей скобкой тега? Где-то внутри <table>, например, а не внутри <table> </table>? Тогда позиция границ открывающего элемента находится просто, с помощью find() — для правой границы и rfind() — для левой.

Закрывающий тег искать сложнее. Можно использовать идею балансирования с помощью стека. Идете после открывающего тега вперед. Если встречаете открывающий тег <table>, добавляете его в стек. Если встречаете закрывающий тег </table>, удаляете один table из стека. Остальные теги (не table) в таком случае можно игнорировать. Как только встретится закрывающий тег </table> при пустом стеке (извлечь из стека нечего), значит это искомый закрывающий тег, а не вложенный.

Конкретная реализация остается за вами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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