Bagaimana Anda membaca dan menulis dokumen xml dengan php?

XML adalah bahasa markup yang sangat mirip dengan HTML. Dokumen XML adalah teks biasa dan berisi tag yang dibatasi oleh < dan >. Ada dua perbedaan besar antara XML dan HTML −

  • XML tidak menentukan kumpulan tag tertentu yang harus Anda gunakan
  • XML sangat pilih-pilih tentang struktur dokumen

XML memberi Anda lebih banyak kebebasan daripada HTML. HTML memiliki sekumpulan tag tertentu. tag mengelilingi tautan, itu

memulai paragraf dan seterusnya. Namun, dokumen XML dapat menggunakan tag apa pun yang Anda inginkan. Beri tag pada rating film, beri tag pada tinggi badan seseorang. Jadi XML memberi Anda opsi untuk memasang tag Anda sendiri

XML sangat ketat dalam hal struktur dokumen. HTML memungkinkan Anda bermain cepat dan longgar dengan beberapa tag pembuka dan penutup. Tetapi tidak demikian halnya dengan XML

Daftar HTML yang bukan XML yang valid

  • Braised Sea Cucumber
  • Baked Giblets with Salt
  • Abalone with Marrow and Duck Feet

Ini bukan dokumen XML yang valid karena tidak ada tag penutup yang cocok dengan tiga pembukaan

  • tag. Setiap tag yang dibuka dalam dokumen XML harus ditutup

    Daftar HTML yang merupakan XML yang valid

    • Braised Sea Cucumber
    • Baked Giblets with Salt
    • Abalone with Marrow and Duck Feet
    _

    Mem-parsing Dokumen XML

    Modul SimpleXML PHP 5 yang baru membuat penguraian dokumen XML menjadi sederhana. Itu mengubah dokumen XML menjadi objek yang menyediakan akses terstruktur ke XML

    Untuk membuat objek SimpleXML dari dokumen XML yang disimpan dalam string, teruskan string ke simplexml_load_string(). Ini mengembalikan objek SimpleXML

    Contoh

    Coba contoh berikut -

       
          
          
                Gopal K Verma
                Sairamkrishna
                Project submission
                Please see clearly 
             
             
             XML;
             $xml=simplexml_load_string($note);
             print_r($xml);
          ?>
    		
       
    
    

    Ini akan menghasilkan hasil berikut -

    Bagaimana Anda membaca dan menulis dokumen xml dengan php?

    CATATAN - Anda dapat menggunakan fungsi simplexml_load_file (nama file) jika Anda memiliki konten XML dalam file

    Untuk detail lengkap tentang fungsi penguraian XML, periksa Referensi Fungsi PHP

    Menghasilkan Dokumen XML

    SimpleXML bagus untuk mem-parsing dokumen XML yang sudah ada, tetapi Anda tidak dapat menggunakannya untuk membuat yang baru dari awal

    Cara termudah untuk menghasilkan dokumen XML adalah dengan membangun array PHP yang strukturnya mencerminkan struktur dokumen XML dan kemudian melakukan iterasi melalui array, mencetak setiap elemen dengan pemformatan yang sesuai.

    PHP Hasilkan file XML - SimpleXML, DOM, Metode Pembaca/Penulis

    Hasilkan file XML secara dinamis menggunakan PHP tiga metode berbeda,

    Tabel berikut menjelaskan metode mana yang baik untuk mengikuti standar dan mana yang tidak

    OperasiDOMXML Pembaca/PenulisSimpleXMLRead
    Dukungan yang burukWrite
    Dukungan buruk Memanipulasi
    Dukungan yang buruk
    Dukungan yang burukDukungan Namespace Kendali Penuh
    Dukungan yang burukXPATH SupportValidate

    Hasilkan file XML dalam PHP SimpleXML, DOM, Metode Pembaca/Penulis

    Metode XML DOM (Document Object Model).

    Keunggulan DOM

    • Sangat cepat untuk dokumen kecil, memuat seluruh dokumen ke dalam memori

    • Antarmuka DOM PHP sederhana

    • Akses apa saja di pohon, dilalui dengan berbagai cara

    • Pustaka parsing XML, penggunaan libXML2 untuk DOM

    Kekurangan DOM

    • Muat seluruh dokumen ke dalam memori

    • Akses data hanya setelah dokumen lengkap diurai

    • Mendukung PHP 5+ atau versi yang lebih baru

    Buat XML menggunakan DOM

    <?php
      $dom = new DOMDocument('1.0','UTF-8');
      $dom->formatOutput = true;
    
      $root = $dom->createElement('student');
      $dom->appendChild($root);
    
      $result = $dom->createElement('result');
      $root->appendChild($result);
    
      $result->setAttribute('id', 1);
      $result->appendChild( $dom->createElement('name', 'Opal Kole') );
      $result->appendChild( $dom->createElement('sgpa', '8.1') );
      $result->appendChild( $dom->createElement('cgpa', '8.4') );
    
      echo '<xmp>'. $dom->saveXML() .'</xmp>';
      $dom->save('result.xml') or die('XML Create Error');
    ?>

    Keluaran Hasil

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _

    Memanipulasi XML menggunakan DOM

    Manipulasi file XML yang dibuat di atas

    <?php
      $dom = new DOMDocument();
      $dom->formatOutput = true;
    
      $dom->load('result.xml', LIBXML_NOBLANKS);
    
      $root = $dom->documentElement;
      $newresult = $root->appendChild( $dom->createElement('result') );
    
      $newresult->setAttribute('id', 2);
      $newresult->appendChild( $dom->createElement('name','Max Miller') );
      $newresult->appendChild( $dom->createElement('sgpa','8.7') );
      $newresult->appendChild( $dom->createElement('cgpa','8.2') );
    
      echo ''. $dom->saveXML() .'';
      $dom->save('new_result.xml') or die('XML Manipulate Error');
    ?>

    Keluaran Hasil

    hasil. xml

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
      <result id="2">
        <name>Max Miller</name>
        <sgpa>8.7</sgpa>
        <cgpa>8.2</cgpa>
      </result>
    </student>
    _


    Baca XML menggunakan DOM

    <?php
      $dom = new DOMDocument();
      $dom->load('new_result.xml');
    
      $root = $dom->documentElement;
      echo "This document is store " . $root->tagName . " Result Information" . "
    "; $results = $root->getElementsByTagName( 'result' ); foreach( $results as $result){ echo 'Result Id: ' . $result->getAttribute('id'); foreach( $result->getElementsByTagName('name') as $name ){ echo ' Student ' . $name->nodeValue; } foreach( $result->getElementsByTagName('sgpa') as $sgpa ){ echo ' SGPA ' . $sgpa->nodeValue; } foreach( $result->getElementsByTagName('cgpa') as $cgpa ){ echo ' CGPA ' . $cgpa->nodeValue . "
    "; } } ?>

    Keluaran Hasil

    hasil_baru. xml

    This document is store student Result Information
    Result Id: 1 Student Opal Kole SGPA 8.1 CGPA 8.4
    Result Id: 2 Student Max Miller SGPA 8.7 CGPA 8.2
    _


    Metode Pembaca/Penulis XML

    Keuntungan Pembaca/Penulis XML

    • Menggunakan sedikit memori untuk membaca dan menulis

    • Mengizinkan untuk mengakses segera

    • Mendukung PHP4+ dan PHP5+

    Kelemahan Pembaca/Penulis XML

    • Membaca data hanya berurutan

    • Semua metode lambat untuk mengakses data

    Contoh Pembaca XML

    <?php
      $reader = new XMLReader();
      $reader->open('new_result.xml');
    
      while( $reader->read() ){
        if($reader->nodeType !== XMLReader::ELEMENT){
          continue;
        }
        if($reader->localName === 'result'){
          echo 'Result Id: ' . $reader->getAttribute('id');
        }
        if($reader->localName === 'name'){
          echo ' Student ' . $reader->readString();
        }
        if($reader->localName === 'sgpa'){
          echo ' SGPA ' . $reader->readString();
        }
        if($reader->localName === 'cgpa'){
          echo ' CGPA ' . $reader->readString() . "
    ";; } } ?>
    _

    Keluaran Hasil

    Result Id: 1 Student Opal Kole SGPA 8.1 CGPA 8.4
    Result Id: 2 Student Max Miller SGPA 8.7 CGPA 8.2


    Contoh Penulis XML

    <?php
      $writer = new XMLWriter();
      $writer->openUri('result.xml');
    
      $writer->setIndentString('  ');
      $writer->setIndent(true);
    
      $writer->startDocument( '1.0', 'UTF-8' );
      $writer->startElement('student');
    
      $writer->startElement('result');
      $writer->writeAttribute('id', '1');
    
      $writer->writeElement('name', 'Opal Kole');
      $writer->writeElement('sgpa', '8.1');
      $writer->writeElement('cgpa', '8.4');
      $writer->endElement();   /* </result> */
    
      $writer->flush();
      $writer->endElement();  /* </student> */
      $writer->endDocument();
    ?>

    Keluaran Hasil

    hasil. xml

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _


    Membaca/Menulis SimpleXML

    Penulisan SimpleXML

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _0

    Keluaran Hasil

    simple_xml_create. xml

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _1


    Pembacaan XML Sederhana

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _2

    Keluaran Hasil

    <?xml version="1.0" encoding="UTF-8"?>
    <student>
      <result id="1">
        <name>Opal Kole</name>
        <sgpa>8.1</sgpa>
        <cgpa>8.4</cgpa>
      </result>
    </student>
    _3


    • " Sebelumnya
    • Berikutnya "

    Bagaimana cara membaca dan menulis file XML di PHP?

    Baca Elemen XML Tertentu . Setelah itu, Anda dapat mengakses elemen apa pun dari XML dengan objek ini sebagai berikut. $xmldata = simplexml_load_file("karyawan. Use simplexml_load_file function to load external XML file in your PHP program and create an object. After that, you can access any element from the XML by this object as follows. $xmldata = simplexml_load_file("employees.

    Bagaimana cara menulis file XML di PHP?

    Cara Membuat dokumen XML menggunakan PHP .
    “$dom = DOMDocument baru();”
    “$dom->pengkodean = 'utf-8';”
    “$dom->xmlVersion = '1. 0';” . 0
    “$dom->formatOutput = true;”

    Bagaimana cara membaca respons XML di PHP?

    Pilihan 1. Respons XML dalam PHP menggunakan file_get_contents . Untuk melakukan itu, kita akan menggunakan fungsi file_get_contents PHP

    Bagaimana cara mengintegrasikan PHP dan XML?

    Modul SimpleXML PHP 5 yang baru membuat penguraian dokumen XML menjadi sederhana. Itu mengubah dokumen XML menjadi objek yang menyediakan akses terstruktur ke XML. Untuk membuat objek SimpleXML dari dokumen XML yang disimpan dalam string, teruskan string ke simplexml_load_string(). Ini mengembalikan objek SimpleXML