Nochmal XPath

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Zitat von newbie1955 Beitrag anzeigen
    P.S. Habe inzwischen erfolgreich gefrickelt und festgestellt, dass strong ja in diesem Fall nix mit meinem a zu tun hat.
    Armer Jung, hast Du richtig festgestellt, da HTML nicht valide ist und zwei schließende </strong> Tags enthalten sind. Stelle das mal mit Umbrüchen dar:

    HTML-Code:
    <div class="mbk-header">
      <strong class="block-subheadline"> Teterow</strong>
      <a href="/Nachrichten/Sport/Fussball/Bergring-Teterow-zum-93.-Mal-Mekka-des-Motorsports" 
      class="mbk-containerlink mbk-headline">
      Bergring Teterow zum 93. Mal Mekka des Motorsports</a>
      </strong>
    </div>
    Nun schaue ich mir erst einmal mit saveHTML an, was loadHTML auspuckt:

    PHP-Code:
    $doc->loadHTML($data);
    echo 
    $doc->saveHTML(); 
    Und siehe da, der zweite schließende strong-Tag wurde hinausgeworfen. Was übrig bleibt ist nun:

    HTML-Code:
    <div class="mbk-header">
      <strong class="block-subheadline"> Teterow</strong>
      <a href="/Nachrichten/Sport/Fussball/Bergring-Teterow-zum-93.-Mal-Mekka-des-Motorsports" 
      class="mbk-containerlink mbk-headline">
      Bergring Teterow zum 93. Mal Mekka des Motorsports</a>
    
    </div>
    Nun wird der a-Tag nicht mehr vom strong-Tag eingeschlossen, liegt nicht mehr in als Inline-Element innerhalb des strong-Tags, sondern folgt erst nach dem strong-Tag. Was besagt, er ist kein Kind (Child) von strong mehr, sondern ein Geschwisterkind. Somit hat div nicht ein Kind namens strong und ein Enkelkind namens a, sondern div hat nun zwei Kinder mit den Namen strong und a, dafür aber keine Enkelkinder.

    PHP-Code:
    foreach ($xPath->query('//child::div[@class="mbk-header"]/child::a') as $element) { 

    Kommentar


    • #17
      Nochmal Oha!

      Ehrlich gesagt, kannte ich saveHTML gar nicht, aber jetzt. Langsam bekomme ich auch ein Gefühl dafür, wieviel nicht valides HTML da in der Welt herumliegt.

      Gruß und Dank nochmals.

      Kommentar

      Lädt...
      X