Ho difficoltà a capire cosa è esattamente memorizzato in childNodes. Idealmente mi piacerebbe fare un altro xquery su ciascuno dei nodi figlio, ma non riesco a farlo sembrare chiaro. Ecco il mio piano d'azione: dati:Attraversare i nodi figlio con DOMXpath PHP?
<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>
E il codice:
$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? }
Per ogni elemento di "qualcosa" (cioè, $ n) voglio accedere i valori delle due parti di testo e l'href. Ho provato a utilizzare childNode e un'altra xquery ma non ho potuto ottenere nulla per funzionare. Qualsiasi aiuto sarebbe molto apprezzato!
Grazie @TrexXx, ma quando uso "$ other_nodes-> nodeValue" Non vedo niente Non si sta ricominciando dall'elemento principale? Originariamente pensavo che fosse qualcosa del genere: '$ other_nodes = $ n-> query ('div [@ class =" somethingelse "]')'; – Bryan
'$ other_nodes' è un elenco di nodi, quindi prima devi ottenere un oggetto (un nodo) e quindi ottenere il suo valore. Qualcosa come '$ other_nodes-> item (0) -> nodeValue'. – TrexXx
'$ other_nodes' finisce per contenere informazioni esterne a' $ n' (ad esempio da altri elementi "qualcosa"); non dovrebbe essere il modo, giusto? Conosci qualche altro approccio che non richiede di tornare a interrogare l'elemento radice? – Bryan