2010-12-15 34 views
7

PHP'nin DOMDocument öğesindeki bazı h3 başvurularım var.PHP'nin DOMDocument ile kardeşleri alabilir miyim?

$dom = new DOMDocument(); 

$dom->loadHtml($content); 

$h3s = $dom->getElementsByTagName('h3'); 

foreach($h3s as $h3) { 

    var_dump($h3->nodeValue); 

} 

Ben h3 s sonra bir sonraki unsurları almak gerekir. Bu durumda, sonraki h3 veya belgenin sonuna kadar olan tüm öğeler olacaktır.

Normal bir ifadeyle kolayca çalıştı, ancak HTML'yi ayrıştırmak için burada kullanmak istemiyorum. Düzenli ifade olduğunu Başvuru için

...

preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches); 

(kırılgandır, bu nedenle uygun ayrıştırma arzusu). 'da beklediğim verileri yukarıdaki normal ifadeden DOMDOcument kullanarak nasıl kullanabilirim?

documentation'u kontrol ettim, ancak JavaScript'in nextSibling özelliğine eşdeğer bir eşleşme bulamadı.

cevap

14

$h3->nextSibling ve $h3->previousSibling, sizin için uygun olanıdır. Üzerinde yinelediğinizde DOMNode öğelerini içeren DOMNodeList numaralı öğelerini

http://www.php.net/manual/en/class.domnode.php

+2

+1 Verilen sınıf PHP kılavuzunda uzanır hangi sınıf kontrol etmek önemlidir. – netcoder

İlgili konular