Nochmal XPath

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by newbie1955 View Post
    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) { 

    Comment


    • #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.

      Comment

      Working...
      X