HTML Parser Elements arasında İçerik Get

3 Cevap php

Ben HTML bu dize tüm bunların yaklaşık 100 sayfa, dışarı veri ayrıştırmak için arıyorum:

<span class="cell CellFullWidth"><span class="SectionHeader">EVENT</span><br/><div class="Center">Event Name</div></span>

Ben ayrıştırıcıların çok aşina değilim, bu yüzden ben bunu yaparken hakkında gitmek gerektiğini ben döngü ve nasıl her sayfasından "Olay Adı" ayıklamak için kullanmak gerektiğini merak ediyorum.

I looked into Simple HTML DOM but I couldn't quite figure it out. Please help, thanks!

3 Cevap

Varsayarsak:

  • Tüm olay isimler divlere vardır
  • Içeren div class "Merkezi" olması gerekir
  • Sınıf "Merkezi" ile tüm divs bir olayın adını içerir

Buraya:

<?php

$content = '
<span class="cell CellFullWidth"><span class="SectionHeader">EVENT</span><br/><div class="Center">Event Name1</div></span>
<span class="cell CellFullWidth"><span class="SectionHeader">EVENT</span><br/><div class="Center">Event Name2</div></span>

';

$html = new DOMDocument();

$html->loadHTML($content);

$divs = $html->getElementsByTagName('div');

foreach($divs as $div) {
    if($div->getAttribute('class') == 'Center') {
        $events[] = $div->nodeValue;
    }
}

print_r($events);

Olay adı dışındaki tüm metin her zaman aynı ise (başlangıç ​​ve bitiş bitleri hep aynı uzunlukta olacak beri), sadece bir alt dize ile bunu yapabilirsiniz

$event_name = substr($current_line, 98, -14);

Yani ilk 98 karakterleri ve son 14 çıkardığınızda geriye kalan ne vereceğim.

Sen kullanabilirsiniz PHP's DOM manipulation functions.

Temel olarak, DOMDocument::loadHTML() veya DOMDocument::loadHTMLFile() yoluyla yeni bir DOMDocument oluşturmak istiyorum, ve sonra $yourDOmObject->getElementsByTagName() Tüm <span> unsurları elde etmek için kullanın.