En iyi Xml veya HTML Belgesi Oluşturma Sınıfı

<?php
Class Etiket{
  var $etiketler;
  function Etiket($ac,$icerik = null,$kapat = null){
    $this->ac = $ac;
    $this->icerik = $icerik;
    $this->kapat = $kapat;
  }
  function ekle($ac, $icerik, $kapat){
    $yeni_etiket = new Etiket( $ac, $icerik, $kapat );
    if( $this->kapat == null )
    {
      die("invalid ML object");
    }
    $this->etiketler[] = $yeni_etiket;
    return $yeni_etiket;
  }
  function derle( $derinlik = 0, $paragraf = "\t", $satirbasi = "\n" ){
		$metin=null;
    $centik = str_pad( "", $derinlik, $paragraf );
    $metin .= $centik . $this->ac . $satirbasi;
    if( $this->kapat == null )
      return $metin;
    if( $this->icerik != null)
      $metin .= $centik . $paragraf . $this->icerik . $satirbasi;
    if (is_array($this->etiketler)){
      $anahtarlar = array_keys($this->etiketler);
      foreach($anahtarlar as $anahtar){
        $metin .= $this->etiketler[$anahtar]->derle( $derinlik + 1, $paragraf );
      }
    }
    $metin .= $centik . $this->kapat . $satirbasi;
    return $metin;
  }
}

$ml=new Etiket("<html>","","</html>");
$ml->ekle("<h1>","Merhaba","</h1>");
$ml->ekle("<div>","Ulusan Yazılım","</div>");
echo $ml->derle();

?>

Çıktısı

<html>
	<h1>
		Merhaba
	</h1>
	<div>
		Ulusan Yazılım
	</div>
</html>