Hallo TaiSon,
Wau das ist richtig super...
$a_nodeList = $dom->getElementsByTagName('a');
und schon habe ich alle <a> LINKS
Du bekommst eine Nodelist. Das ist eine Life-Collection (aktive Verweisliste) auf den originalen DOT (Documnet Object Tree).
Die Liste kannst Du mit foreach() iterieren, so wie Du das schon machst. Das Foreach() ist da aber nur "reingebastelt". Die übrigen Eigenschaften, die Foreach sonst auszeichnet (in der prozeduralen Programmierung) funktionieren hier (noch) nicht. Alternatic kannst Du mit
$a_node = $a_nodeList->item($index);
direkt auf eine Zeile in der Liste zugreifen. Die Zählung beginnt bei 0. Du solltest aber den Index ($index) nicht außerhalb des erlaubten Ranges wählen. Das gibt auf die Finger.
Die Anzahl der Nodes erfährst Du mit
$anzahl = $a_nodeList->length;
Das musst Du aber nicht umkopieren, habe ich hier nur zum Merken gemacht. Du kannst immer direkt mit den Properties arbeiten.
Du solltest auch besser gewählte Variablennamen nutzen. Du kannst die Nodes dann auch weiter auslesen.
foreach ( $a_nodelist as $itemno => $node )
{
if ($node->hasAttributes())
{
print_r($node->attributes);
}
echo $node->textContent;
}
... lesen ich es aus.
Aber wa sich nicht kapiere...
mit
print_r ($att_ahref);
Ja, das ist ein Objekt (hier eine "Life-Collection" oder "Dynaset" of Objects) und print_r() und var_dunp() können die Objekte (noch) nicht vollständig darstellen (da die flüchtig sind). Das will man meistens auch nicht. Hängt auch von der PHP-Version ab, was die inzwischen können.
Hangel dich einfach mal durch alle Methoden und Properties von DOMDocument und DOMNode, das sind die wichtigsten.
Grüße
TS