Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan kepada format xml dalam php

Bagaimana untuk menukar tatasusunan kepada format xml dalam php

PHPz
PHPzasal
2023-04-19 11:39:08681semak imbas

PHP ialah bahasa pengaturcaraan yang biasa digunakan yang sering digunakan untuk membangunkan aplikasi web. XML juga merupakan format yang kerap digunakan dalam aplikasi web. Menukar tatasusunan PHP kepada format XML membolehkan data ditukar dan dikongsi antara perisian yang berbeza.

Dalam artikel ini, kami akan menunjukkan cara untuk menukar tatasusunan yang agak mudah kepada format XML menggunakan PHP.

Idea teras adalah untuk menukar setiap elemen tatasusunan kepada elemen XML dan menukar atribut dan nilai dalam elemen kepada atribut dan nilai XML. Kita boleh menggunakan pendekatan rekursif untuk mengendalikan tatasusunan bersarang.

Pertama, kita akan mentakrifkan tatasusunan yang ingin kita tukar:

$data = array(
  "book" => array(
    "title" => "Learning PHP",
    "author" => "David Sklar",
    "publisher" => "O'Reilly Media",
    "edition" => "4th",
    "year" => 2014
  )
);

Sekarang, kita perlu menulis fungsi yang menukar tatasusunan ini kepada XML. Berikut ialah kod untuk fungsi:

function array_to_xml($array, &$xml) {
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      if (is_numeric($key)) {
        $key = 'item' . $key; 
      }
      $subnode = $xml->addChild($key);
      array_to_xml($value, $subnode);
    } else {
      $xml->addChild($key, htmlspecialchars($value));
    }
  }
}

Fungsi ini dipanggil array_to_xml, yang mengambil tatasusunan untuk ditukar dan rujukan kepada objek dokumen XML yang digunakan untuk menyimpan XML. Fungsi

mencipta nod XML seperti yang diperlukan dengan mengulangi setiap elemen tatasusunan dan menyemak jenis elemen (tatasusunan atau rentetan/jenis nombor).

Jika elemen daripada jenis tatasusunan, fungsi ini dipanggil secara rekursif dan nod anak ditambah pada nod semasa.

Jika ia ialah unsur rentetan/jenis angka, ia ditambah terus pada nod semasa.

Dalam contoh ini, nama nod peringkat pertama ialah "buku", jadi kami akan menggunakan objek dokumen XML untuk mencipta nod akar bernama "buku":

$xml = new SimpleXMLElement('<book/>');

Seterusnya , kami memanggil fungsi array_to_xml untuk menukar tatasusunan kepada XML dan menambahnya pada dokumen XML:

array_to_xml($data, $xml);

Akhir sekali, kami akan mengeluarkan dokumen XML:

echo $xml->asXML();

Kod lengkap adalah seperti berikut :

$data = array(
  "book" => array(
    "title" => "Learning PHP",
    "author" => "David Sklar",
    "publisher" => "O'Reilly Media",
    "edition" => "4th",
    "year" => 2014
  )
);

$xml = new SimpleXMLElement('<book/>');

function array_to_xml($array, &$xml) {
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      if (is_numeric($key)) {
        $key = 'item' . $key; 
      }
      $subnode = $xml->addChild($key);
      array_to_xml($value, $subnode);
    } else {
      $xml->addChild($key, htmlspecialchars($value));
    }
  }
}

array_to_xml($data, $xml);

echo $xml->asXML();

Output selepas menjalankan kod adalah seperti berikut:

<book>
  <title>Learning PHP</title>
  <author>David Sklar</author>
  <publisher>O'Reilly Media</publisher>
  <edition>4th</edition>
  <year>2014</year>
</book>

Seperti yang dapat dilihat daripada kod di atas, menukar tatasusunan kepada XML dengan PHP adalah proses yang agak mudah, selagi anda biasa dengan XML Struktur dan fungsi yang berkaitan dalam PHP boleh dilaksanakan dengan mudah. Anda boleh melaraskan kod yang sepadan mengikut keperluan sebenar untuk menjana dokumen XML yang sesuai dengan anda.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan kepada format xml dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn