PHP DOMDocument Sınıfı Kullanımı

13-03-2014
(PHP 4 >= 4.1.0) ile gelen DOMDocument sınıfı ile bir html sayfasını parsing etmek için veya bir HTML string'ini parsing etmek için şu kodları kullanmak gereklidir:

//UTF-8 sayesinde karakter problemi ortadan kalkar.
 $dom = new DOMDocument('1.0','UTF-8'); 
 $encodingHint = '';
 
 $dom->substituteEntities = TRUE;
 //loadHTML metodu parametre olarak bir string veya html dosya adi alir. Buradaki $content bir HTML string'i
 $dom->loadHTML($encodingHint.$content); 
 $domx = new DOMXPath($dom);
  
 //Bu kodta ise benimCssSinifim isimli css sınıfına göre parsing yapılacağı belirtilmektedir.
 $entries = $domx->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' benimCssSinifim ')]");
 $satirlar=array();
 foreach ($entries as $entry) {
     $satirlar[] = '<' . $entry->tagName . '>' . $entry->nodeValue .  'tagName . '>';
 }
Eğer bir css sınıfına göre parsing değil de, bir elemente göre parsing yapmak istiyorsak DOMXPath sınıfının evaluate() metodu içerisinde HTML elementini yazmamız gerekecektir.

$parsingEdilecekHTMLKodu="

Phasellus blandit enim eget odio euismod eu dictum quam scelerisque.

". "

Sed ut diam nisi.

Ut vestibulum volutpat luctus.

"; $dom = new DOMDocument(); $dom->loadHTML($parsingEdilecekHTMLKodu); $domx = new DOMXPath($dom); $entries = $domx->evaluate("//p"); $arr = array(); foreach ($entries as $entry) { $arr[] = '<' . $entry->tagName . '>' . $entry->nodeValue . 'tagName . '>'; } print_r($arr);
Bu kod çalıştığı zaman ekrana şu şekilde bir array yazılır:

Array(
    [0] = '

Phasellus blandit enim eget odio euismod eu dictum quam scelerisque.

'; [1] = '

Sed ut diam nisi. Ut vestibulum volutpat luctus.

'; [2] = '

Ut vestibulum volutpat luctus.

'; )

© 2019 Tüm Hakları Saklıdır. Codesenior.COM