У меня есть HTML, и я извлекаю фрагмент в определенный момент (встроенное изображение), но я хотел бы показать некоторый контекст вокруг этого изображения.
Я использую PHP, и я знаю, что и Symfony, и WordPress предоставляют функции для работы с тем, что происходит, когда вы нарезаете текст в середине некоторого HTML (он закрывает все открытые теги), но не имеет ничего общего с фрагментами в другом направлении ,
Итак, в случае:
'Snippet of text and a <a href="#moo">link right her'
Я могу использовать вышеупомянутую функцию для исправления, но как насчет:
'nk right here</a> and then more text after the link.'
Я рассмотрел возможность того, что даже фрагмент закрытия тега, вероятно, является неправильным способом, и я должен вместо этого использовать Xpath для анализа HTML. Однако я не могу найти примеров или упоминаний об использовании xpath для создания таких фрагментов.
Обновить:
Итак, моя нынешняя идея:
перемещайте дерево разбора до тех пор, пока не дойду до тега, который охватывает весь контент (div class = post в моем случае). Последний узел, который у меня есть до этого div, является начальной точкой (скорее всего, тегом ap).
Отсюда, возьмите предыдущего брата (который должен снова быть тегом ap).
Спуститесь в этот узел и получите последних детей, сохранив текстовое содержимое во временную строку. Продолжайте возвращаться через этих детей, пока мы не получим достаточно фрагмента.
Это все еще не идеально, поскольку я не уверен, как далеко я должен уйти, чтобы получить текстовое содержимое.
Кто-нибудь знает о реализации этой идеи в любом месте?