Cara Membuat File XML Menggunakan PHP
Muh. Ashhar Bustan

Cara Membuat File XML Menggunakan PHP

Ada banyak alasan mengapa kita membuat dokumen XML menggunakan PHP. Misalnya untuk membuat Sitemap, RSS Feed atau untuk layanan REST. Apapun alasannya, tutorial kali ini akan mengenalkan Anda pada objek DOMDocument dan cara menggunakannya untuk membuat dokumen XML yang dinamis. Sebelum kita mulai membuat XML, kita memerlukan beberapa hal untuk membuatnya. Saya akan memulai dengan mendeklarasikan sebuah kelas yang akan menyimpan beberapa informasi tentang tutorial terbaru di Ashharbustan.com.

class Tutorial
{
  public $penulis;
  public $judul;
  public $tanggal;
  public $kategori;
 
  function __construct($author, $title, $date, $categories)
  {
    $this->penulis = $author;
    $this->judul = $title;
    $this->tanggal = $date;
    $this->kategori = $categories;
  }
}

 

Baca Juga: Cara Memasang CKEditor Pada Codeigniter


Di sini kita telah memiliki objek PHP yang sangat sederhana yang menyimpan berbagai informasi yang berkaitan dengan tutorial yaitu informasi penulis, judul, tanggal publikasi, dan kategori. Sekarang kita akan menentukan nilai objeknya yang kemudian dikonversi menjadi XML. Caranya yaitu dengan membuat objek dari kelas tutorial yang telah dibuat, lebih lengkapnya perhatikan source code berikut:

$tutorials = array(
  new Tutorial(
    "Muh. Ashhar Bustan",
    "Cara Membuat Sitemap XML",
    "1/13/2017",
    array(
      "Tutorial",
      "XML"
    )
  ),
   
  new Tutorial(
    "Muh. Ashhar Bustan",
    "Tutorial Codeigniter",
    "1/12/2017",
    array(
      "Tutorial",
      "Codeigniter",
      "PHP"
    )
  ),
 
  new Tutorial(
    "Muh. Ashhar Bustan",
    "Cara Menginstall Codeigniter",
    "1/6/2017",
    array(
      "Tutorial",
      "Codeigniter",
      "XAMPP",
      "HTML"
    )
  )
);

 

Sekarang kita masuk ke bagian intinya yaitu membuat file XML perhatikan source code berikut:

header("Content-Type: text/xml");

//membuat file XML
$xmlDoc = new DOMDocument();

//membuat elemen root
$root = $xmlDoc->appendChild(
          $xmlDoc->createElement("TutrialTerbaru"));
       
//memformat xml
$xmlDoc->formatOutput = true;

//menyimpan file dengan nama test.xml
$xmlDoc->save("test.xml");

 

Baris pertama untuk memberitahu browser bahwa kita tidak mengembalikan bentuk HTML, kita hanya mengembalikan xml. Hal tersebut untuk mencegah browser mencoba membuat XML menjadi HTML, yang menyebabkannya tidak berfungsi dan hanya menampilkan layar kosong. Kita kemudian membuat sebuah instance dari DOMDocument. Kita bisa mengatur version dan encoding yang akan kita gunakan pada Konstruktor tetapi defaultnya akan menggunakan xml versi 1.0. Selanjutnya kita membuat node root, yang dalam contoh di atas adalah TutorialTerbaru. Caranya dengan membuat elemen menggunakan fungsi createElement DOMDocument dan menambahkannya sebagai anak atau child ke dokumen XML. Baris selanjutnya kita memerintahkan DOMDocument untuk memformat output agar tampilannya teratur, dan kemudian menyimpannya ke dalam file dengan nama test.xml. Jika kita menjalankan skrip di atas, kita akan mendapatkan hasil seperti berikut:

<?xml version="1.0"?>
<TutorialTerbaru/>

 

Sekarang kita akan membuat XML dengan menggunakan informasi tentang tutorial. Kita akan mulai dengan membuat tag Tutorial dan menampilkan penulis sebagai atribut serta judul dan tanggal sebagai elemen anak atau child.

Baca Juga: Source Code Bridging SIMRS GOS Dan SEP BPJS Untuk Insert SEP Versi Terbaru Dengan PHP


foreach($tutorials as $tut)
{
  //membuat elemen tutorial
  $tutTag = $root->appendChild(
              $xmlDoc->createElement("Tutorial"));
           
  //membuat atribut author
  $tutTag->appendChild(
    $xmlDoc->createAttribute("author"))->appendChild(
      $xmlDoc->createTextNode($tut->penulis));

  //membuat elemen title
  $tutTag->appendChild(
    $xmlDoc->createElement("Title", $tut->judul));

  //membuat elemen date
  $tutTag->appendChild(
    $xmlDoc->createElement("Date", $tut->tanggal));
}

 

Pertama-tama kita membuat tag untuk tutorial dengan cara yang sama seperti ketika kita membuat tag root, tetapi sekarang kita menambahkannya sebagai anak ke elemen root dan bukan dokumen XML. Sayangnya, tidak seperti createElement, createAttribute tidak memiliki kemampuan untuk mengambil nilai dari constructor. Ini berarti kita harus menggunakan beberapa sintaks yang sedikit panjang untuk menambahkan atribut ke dalam sebuah elemen. Pertama kita memanggil fungsi createAttribute dan memberikan nama sesuai dengan yang kita inginkan, kemudian kita memberikan nilai ke atribut tersebut dengan memanggil fungsi createTextNode dan melewatkan nilainya. Begitu kita selesai membuat atribut, selanjutnya kita tinggal menambahkannya sebagai anak ke tag tutorial. Terakhir kita menambahkan elemen untuk judul dan tanggal dengan memanggil createElement dan memberikan nama dan nilainya. Hasilnya seperti dibawah ini:

<?xml version="1.0"?>
<TutorialTerbaru>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Cara Membuat Sitemap XML</Title>
    <Date>1/13/2017</Date>
  </Tutorial>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Tutorial Codeigniter</Title>
    <Date>1/12/2017</Date>
  </Tutorial>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Cara Menginstall Codeigniter</Title>
    <Date>1/6/2017</Date>
  </Tutorial>
</TutorialTerbaru>

 

Yang terakhir adalah menambahkan elemen kategori dan caranya sama ketika kita menambahkan elemen judul dan tanggal. Hanya saja di sini kita menggunakan perulangan.

//membuat elemen kategori
$catTag = $tutTag->appendChild(
            $xmlDoc->createElement("Categories"));

//membuat elemen kategori untuk setiap nilai pada array
foreach($tut->kategori as $cat)
{
  $catTag->appendChild(
    $xmlDoc->createElement("Category", $cat));
}

 

Hasil akhirnya bisa kita lihat seperti berikut:

<?xml version="1.0"?>
<TutorialTerbaru>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Cara Membuat Sitemap XML</Title>
    <Date>1/13/2017</Date>
    <Categories>
      <Category>Tutorial</Category>
      <Category>XML</Category>
    </Categories>
  </Tutorial>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Tutorial Codeigniter</Title>
    <Date>1/12/2017</Date>
    <Categories>
      <Category>Tutorial</Category>
      <Category>Codeigniter</Category>
      <Category>PHP</Category>
    </Categories>
  </Tutorial>
  <Tutorial author="Muh. Ashhar Bustan">
    <Title>Cara Menginstall Codeigniter</Title>
    <Date>1/6/2017</Date>
    <Categories>
      <Category>Tutorial</Category>
      <Category>Codeigniter</Category>
      <Category>Silverlight</Category>
      <Category>XAMPP</Category>
      <Category>HTML</Category>
    </Categories>
  </Tutorial>
</TutorialTerbaru>

Baca Juga: Memecah String Berdasarkan Parameter Tag HTML Dengan DOM Parser PHP


YANG LAIN:

Komentar

Cari Artikel Lainnya Disini