Hallo,
ich tue mich echt schwer damit. Ich finde auch leider kein geeignetes Tutorial, was einem vor allem die Basics näher bringt oder Beispiele, die nachvollziehbar sind. Selbst PHP-Manual ist ja sonst sehr gut, aber in dem Fall, zu viel vermischt und nicht klar.
Versucht habe ich mich, ähnlich wie Javascript, durch den Dokumentenbaum zu hangeln. Scheitert aber bereits daran, dass ich irgendwie getElementsByTagName nicht nutzen kann.
Das ist soweit OK
$fl = 'https://de.wikipedia.org/wiki/Lex_Barker';
$doc = new DomDocument;
$doc->validateOnParse = true;
#$dom->preserveWhiteSpace = false;
$doc->loadHTMLFile($fl, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
Das hier geht aber leider in keiner Form:
$headlines = $dom->getElementsByTagName('h3')[2];
echo $headlines[2];
$headlines = $dom->getElementsByTagName('h3');
echo $headlines;
$headlines = $dom->getElementsByTagName('h3')[2];
echo $headlines.innerText;
kommt sowas wie zb. Call to a member function getElementsByTagName() on a non-object
Weiter bin ich daher bisher nur mit langen Testketten gekommen, die zwar das gewünschte liefern aber natürlich in der Realnutzung keinen Sinn machen.
$startx = $doc->getElementById('Leben')->parentNode->nextSibling->nextSibling->nextSibling->nextSibling;
// inkl. html tags mit c14n
#echo $startx->C14N();
// nur text
echo $startx->textContent;
Dabei ist die Struktur klar. Von id=Leben ausgehend das Elternelement finden und dann je nach Bedarf entweder alle Überschriften in <h3> Form oder den folgenden Kontext <p> finden und nutzen. Komme aber nicht weiter solange ich keine Schleifen einsetzen kann und dafür müsste ich eben getElementsByTagName nutzen können(sofern das überhaupt der richtige Weg wäre?). Nur was mache ich da falsch?
Gruss
Henry