¿Cómo podría extraer la cadena "texto" de esta marca usando el PHP DOM?Obteniendo el texto del nodo en PHP DOM
<div><span>notthis</span>text</div>
$div->nodeValue
incluye "notthis"
¿Cómo podría extraer la cadena "texto" de esta marca usando el PHP DOM?Obteniendo el texto del nodo en PHP DOM
<div><span>notthis</span>text</div>
$div->nodeValue
incluye "notthis"
lo tanto el tiempo que puede afectar a la DOM, se podía quitar ese span
.
$span = $div->getElementsByTagName('span')->item(0);
$div->removeChild($span);
$nodeValue = $div->nodeValue;
Como alternativa, sólo acceder al nodo de texto de $div
.
foreach($div->childNodes as $node) {
if ($node->nodeType != XML_TEXT_NODE) {
continue;
}
$nodeValue = $node;
}
Si usted termina con más nodos de texto y sólo desea que la primera, puede break
después de la primera asignación de $nodeValue
.
Puede acceder directamente a través de DOMText
nodo XPath:
$xpath = new DOMXPath($dom_document);
$node = $xpath->query('//div/text()')->item(0);
echo $node->textContent; // text