PHP ve XML

XML, HTML'ye çok benzeyen bir biçimlendirme dilidir. Bir XML belgesi düz metindir ve <ve> ile ayrılmış etiketleri içerir. XML ile HTML arasında iki büyük fark vardır -

  • XML, kullanmanız gereken belirli bir etiket kümesini tanımlamaz.
  • XML, belge yapısı konusunda son derece seçicidir.

XML size HTML'den çok daha fazla özgürlük verir. HTML'de belirli bir etiket kümesi vardır: <a> </a> etiketleri bir bağlantıyı çevreler, <p> paragraf başlar vb. Ancak bir XML belgesi istediğiniz herhangi bir etiketi kullanabilir. Bir film derecelendirmesinin etrafına <rating> </rating> etiketleri, birinin boyunun etrafına <height> </height> etiketleri koyun. Böylece XML size kendi etiketlerinizi cihaza alma seçeneği sunar.

XML, belge yapısı söz konusu olduğunda çok katıdır. HTML, bazı açılış ve kapanış etiketleriyle hızlı ve gevşek oynamanıza olanak tanır. Ancak XML'de durum böyle değildir.

Geçerli XML olmayan HTML listesi

<ul>
   <li>Braised Sea Cucumber
   <li>Baked Giblets with Salt
   <li>Abalone with Marrow and Duck Feet
</ul>

Üç açılış <li> etiketiyle eşleşen </li> kapanış etiketi olmadığından bu geçerli bir XML belgesi değildir. Bir XML belgesindeki her açılmış etiket kapatılmalıdır.

Geçerli XML olan HTML listesi

<ul>
   <li>Braised Sea Cucumber</li>
   <li>Baked Giblets with Salt</li>
   <li>Abalone with Marrow and Duck Feet</li>
</ul>

XML Belgesini Ayrıştırma

PHP 5'in yeni SimpleXMLmodülü, bir XML belgesinin ayrıştırılmasını kolaylaştırır. XML belgesini XML'ye yapılandırılmış erişim sağlayan bir nesneye dönüştürür.

Bir dizede saklanan bir XML belgesinden bir SimpleXML nesnesi oluşturmak için dizeyi simplexml_load_string( ). Bir SimpleXML nesnesi döndürür.

Misal

Aşağıdaki örneği deneyin -

<html>
   <body>
      
      <?php
         $note=<<<XML
         
         <note>
            <to>Gopal K Verma</to>
            <from>Sairamkrishna</from>
            <heading>Project submission</heading>
            <body>Please see clearly </body>
         </note>
         
         XML;
         $xml=simplexml_load_string($note);
         print_r($xml);
      ?>
		
   </body>
</html>

Aşağıdaki sonucu verecektir -

NOTE - Fonksiyonu kullanabilirsiniz simplexml_load_file( filename) bir dosyada XML içeriğiniz varsa.

XML ayrıştırma işlevinin tam bir ayrıntısı için PHP İşlev Başvurusu'na bakın .

Bir XML Belgesi Oluşturmak

SimpleXML, mevcut XML belgelerini ayrıştırmak için iyidir, ancak sıfırdan yeni bir tane oluşturmak için onu kullanamazsınız.

Bir XML belgesi oluşturmanın en kolay yolu, yapısı XML belgesininkini yansıtan bir PHP dizisi oluşturmak ve ardından her bir öğeyi uygun biçimlendirmeyle yazdırarak dizi boyunca yinelemektir.

Misal

Aşağıdaki örneği deneyin -

<?php
   $channel = array('title' => "What's For Dinner",
      'link' => 'http://menu.example.com/',
      'description' => 'Choose what to eat tonight.');
   
   print "<channel>\n";
   
   foreach ($channel as $element => $content) {
      print " <$element>";
      print htmlentities($content);
      print "</$element>\n";
   }
   
   print "</channel>";
?>

Aşağıdaki sonucu verecektir -

http://menu.example.com/ Choose what to eat tonight.