@gasonger0

Как получить текст из тега HTML без внутренних тегов?

Есть текст вида:
<span>Нужный текст <small>ненужный</small></span>

Нужно спарсить текст, который заключён в теге , и при этом не содержится в теге , используя PHP и DOMDocument. Если с парсингом содержимого тегов у меня вопросов нет, то с выделением конкретной части есть вопросы.
  • Вопрос задан
  • 665 просмотров
Пригласить эксперта
Ответы на вопрос 2
MrDecoy
@MrDecoy Куратор тега HTML
Верставший фронтендер
textContent? innerText?
Или нужен только тот текст, который не заключён ни в какие тэги?
тогда перебор чилдрен и проверка на текстовую ноду.

https://learn.javascript.ru/basic-dom-node-properties

в DOMDcument судя по всему это будет в childNodes
Ответ написан
@Nikolae
Вот пример того, как можно получить текст из тега без внутренних тегов с помощью PHP и DOMDocument:
$html = '<span>Нужный текст <small>ненужный</small></span>';

$dom = new DOMDocument();
$dom->loadHTML($html);

// Находим все элементы <span>
$spanElements = $dom->getElementsByTagName('span');

// Перебираем найденные элементы <span>
foreach ($spanElements as $spanElement) {
    // Создаем новый DOMDocument, чтобы получить текст без внутренних тегов
    $textDom = new DOMDocument();
    $textDom->appendChild($textDom->importNode($spanElement, true));

    // Получаем текст из DOMDocument без внутренних тегов
    $text = $textDom->textContent;

    // Выводим результат
    echo $text;
}

В результате выполнения этого кода на экране будет выведено:
Нужный текст
Важно отметить, что этот код будет работать только для простых случаев, когда в теге нет других вложенных тегов, иначе можно получить непредсказуемый результат. Если вам нужно получить текст из тега с вложенными тегами, вам нужно использовать более сложный алгоритм парсинга.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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