Basit XML Oluşturma Sınıfı

<?php
Class XML{
	var $icerik="";
	var $anaEtiket="";
	var $altEtiket="";
	var $CRLF="\r\n";
	var $son="";
	Function XML($Version="1.0",$Encoding="utf-8"){
		$this->icerik.="<?xml version=\"{$Version}\" encoding=\"{$Encoding}\"?>{$this->CRLF}";
	}
	Function etiketOlustur($etiketIsmi="root",$ozellik=""){
		$etiketIsmi=$this->filtre($etiketIsmi);
		$this->anaEtiket=$etiketIsmi;
		$ozellik=$this->ozellikAyir($ozellik);
		return $this->icerik.="<{$etiketIsmi}{$ozellik}>{$this->CRLF}";
	}
	Function etiketEkle($etiketIsmi,$ozellik,$veri="",$CDATA=true){
		$etiketIsmi=$this->filtre($etiketIsmi);
		if(empty($veri)){
			if(!empty($this->altEtiket)){
				$this->icerik.="</{$this->altEtiket}>{$this->CRLF}";
			}
			$this->altEtiket=$etiketIsmi;
			$ozellik=$this->ozellikAyir($ozellik);
			return $this->icerik.="<{$etiketIsmi}{$ozellik}>{$this->CRLF}";
		}else{
			$ozellik=$this->ozellikAyir($ozellik);
			return $this->icerik.=$CDATA?"<{$etiketIsmi}{$ozellik}>{$this->CRLF}<![CDATA[{$veri}]]>{$this->CRLF}</{$etiketIsmi}>{$this->CRLF}":"<{$etiketIsmi}{$ozellik}>{$veri}</{$etiketIsmi}>{$this->CRLF}";
		}
	}
	Function son(){
		if($this->son){
			return $this->icerik;
		}else{
			$this->son=true;
			return $this->icerik=$this->altEtiket==""?$this->icerik."</{$this->anaEtiket}>":$this->icerik."</{$this->altEtiket}>{$this->CRLF}</{$this->anaEtiket}>";
		}
	}
	Function goster(){
		ob_start();
		header("Content-type: text/xml");
		echo $this->son();
		ob_end_flush();
	}
	Function kaydet($dosya){
		if(!$Handle=fopen($dosya,'wb+')){
			$this->hata("Dosya Yazılamıyor");
		}
		flock($Handle,LOCK_EX);
		fwrite($Handle,$this->son());
		return fclose($Handle);
	}
	Function hata($hataMetni='',$hataNo='',$Stop=true){
		exit($hataMetni);
	}
	Function ozellikAyir($veri){
		$ozellik='';
		if(is_array($veri)){
			foreach($veri as $anahtar=>$deger){
				$deger=$this->filtre($deger);
				$ozellik.=" $anahtar=\"$deger\"";
			}
		}
		return $ozellik;
	}
	Function filtre($veri){
		$veri=trim($veri);
		$ara=array("<",">","\"");
		$degistir=array("","","'");
		return str_replace($ara,$degistir,$veri);
	}
}
$n=new XML($Version="1.0",$Encoding="utf-8");
$n->etiketOlustur($etiketIsmi="site",'');

$n->etiketEkle("kategori",'',$veri="Bu bir test yazısıdır",$CDATA=true);
$n->goster();
$n->kaydet($dosya="data.xml");
$n->hata();
$n->son();
?>

Çıktısı

<site>
<kategori>
<![CDATA[ Bu bir test yazısıdır ]]>
</kategori>
</site>