Я ищу эту функциональность:
Имеется эта html-страница:
<body>
<h1>Hello,
<b>world!</b>
</h1>
</body>
Я хочу получить массив, который содержит только текстовые элементы DISTINCT (без дубликатов) имассив тегов, которые окружают текстовые элементы:
Результатом вышеупомянутого "html" будет массив, который выглядит следующим образом:
array =>
"Hello," surrounded by => "h1" and "body"
"world!" surrounded by => "b", "h1" and "body"
Я уже сделал это:
$res=$xpath->query("//body//*/text()");
, который дает мне различное текстовое содержимое, но в котором отсутствуют html-теги.
Когда я просто делаю это:
$res=$xpath->query("//body//*");
Я получаю повторяющиеся тексты, одиндля каждого тега-созвездия: например: "мир!"будет отображаться 3 раза, один раз для "body", один раз для "h1" и один раз для "b", но я не могу получить информацию о том, какие тексты являются дубликатами.Одной проверки на наличие дублирующего текста недостаточно, поскольку дублирующие тексты иногда являются просто подстроками прежних текстов, или веб-сайт может содержать настоящий дубликат текста, который затем будет отброшен, что является неправильным.
Как я могу решить эту проблему?
Большое спасибо !!
Томас