Tengo problemas para entender qué almacena exactamente en childNodes. Idealmente, me gustaría hacer otra xquery en cada uno de los nodos secundarios, pero parece que no puedo entenderlo. Aquí está mi escenario: datos:¿Atravesar nodos secundarios con PHP DOMXpath?
<div class="something">
<h3>
<a href="link1.html">Link text 1</a>
</h3>
<div class"somethingelse">Something else text 1</div>
</div>
<div class="something">
<h3>
<a href="link2.html">Link text 2</a>
</h3>
<div class"somethingelse">Something else text 2</div>
</div>
<div class="something">
<h3>
<a href="link3.html">Link text 3</a>
</h3>
<div class"somethingelse">Something else text 3</div>
</div>
Y el código:
$html = new DOMDocument();
$html->loadHtmlFile($local_file);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query("//div[@class='something']");
foreach ($nodelist as $n) {
Can I run another query here? }
Para cada elemento de "algo" (es decir, $ n) Quiero tener acceso a los valores de las dos piezas de texto y el href. Intenté usar childNode y otra xquery pero no pude hacer que funcionara nada. ¡Cualquier ayuda sería muy apreciada!
Gracias @TrexXx, pero cuando se utiliza "$ other_nodes-> nodeValue" No veo nada. ¿No está comenzando de nuevo en el elemento raíz? Originalmente pensé que sería algo como esto: '$ other_nodes = $ n-> query ('div [@ class =" somethingelse "]')'; – Bryan
'$ other_nodes' es una lista de nodos, por lo que primero tendrá que obtener un elemento (un nodo) y luego obtener su valor. Algo así como '$ other_nodes-> item (0) -> nodeValue'. – TrexXx
'$ other_nodes' termina conteniendo información desde afuera de' $ n' (es decir, desde otros elementos "algo"); no debería ser el camino, ¿verdad? ¿Conoce algún otro enfoque que no requiera volver a consultar el elemento raíz? – Bryan