Получение текста node в PHP DOM Как я могу извлечь строку "текст" из этой разметки с помощью PHP DOM? <div><span>notthis</span>text</div> $div->nodeValue включает "notthis" Ответ 1 Пока вы можете повлиять на DOM, вы можете удалить это span. $span = $div->getElementsByTagName('span')->item(0); $div->removeChild($span); $nodeValue = $div->nodeValue; Кроме того, просто войдите в текст node $div. foreach($div->childNodes as $node) { if ($node->nodeType != XML_TEXT_NODE) { continue; } $nodeValue = $node; } Если вы закончите с большим количеством текстовых узлов и хотите только первого, вы можете break после первого назначения $nodeValue. Ответ 2 Вы можете получить доступ к DOMText node напрямую с помощью XPath: $xpath = new DOMXPath($dom_document); $node = $xpath->query('//div/text()')->item(0); echo $node->textContent; // text
Ответ 1 Пока вы можете повлиять на DOM, вы можете удалить это span. $span = $div->getElementsByTagName('span')->item(0); $div->removeChild($span); $nodeValue = $div->nodeValue; Кроме того, просто войдите в текст node $div. foreach($div->childNodes as $node) { if ($node->nodeType != XML_TEXT_NODE) { continue; } $nodeValue = $node; } Если вы закончите с большим количеством текстовых узлов и хотите только первого, вы можете break после первого назначения $nodeValue.
Ответ 2 Вы можете получить доступ к DOMText node напрямую с помощью XPath: $xpath = new DOMXPath($dom_document); $node = $xpath->query('//div/text()')->item(0); echo $node->textContent; // text