Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar tatasusunan php kepada format xml

Bagaimana untuk menukar tatasusunan php kepada format xml

PHPz
PHPzasal
2023-04-23 17:49:281128semak imbas

Penukaran antara tatasusunan dan data XML adalah sangat biasa dalam PHP. Artikel ini akan memperkenalkan anda kepada beberapa cara untuk menukar tatasusunan PHP kepada format XML.

  1. Membina XML secara manual

Pertama, kita boleh membina XML secara manual untuk penukaran. Secara khusus, kita boleh menggunakan sambungan DOM PHP untuk mencipta objek DOM mengikut struktur dokumen XML, dan kemudian memasukkan data tatasusunan ke dalam nod yang sepadan. Berikut ialah contoh mudah:

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

$doc = new DOMDocument();
$root = $doc->createElement('root');
$doc->appendChild($root);

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      $subnode = $xml->createElement($key);
      $xml->appendChild($subnode);
      array_to_xml($value, $subnode);
    } else {
      $xml->appendChild($xml->createElement($key,$value));
    }
  }
}

array_to_xml($my_array, $root);
echo $doc->saveXML();
?>
  1. Menggunakan SimpleXML

PHP juga menyediakan cara yang lebih mudah menggunakan sambungan SimpleXML, yang boleh menukar tatasusunan bersekutu terus kepada XML . Berikut ialah kod contoh:

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

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

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      array_to_xml($value, $xml->addChild($key));
    } else {
      $xml->addChild("$key",htmlspecialchars("$value"));
    }
  }
}

array_to_xml($my_array, $xml);
echo $xml->asXML();
?>
  1. Menggunakan XMLWriter

Pendekatan alternatif ialah menggunakan sambungan XMLWriter. XMLWriter boleh membantu kami mengawal proses penciptaan fail XML dengan lebih halus. Berikut ialah kod sampel:

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0','UTF-8');
$xml->startElement('root');

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      $xml->startElement($key);
      array_to_xml($value, $xml);
      $xml->endElement();
    } else {
      $xml->writeElement($key, $value);
    }
  }
}

array_to_xml($my_array, $xml);
$xml->endElement();
echo $xml->outputMemory(TRUE);
?>

Ringkasan

Di atas ialah tiga cara untuk menukar tatasusunan PHP kepada XML. Membina XML secara manual ialah kaedah yang paling membosankan, tetapi ia juga paling fleksibel, membenarkan kawalan terperinci ke atas proses penciptaan XML. SimpleXML ialah pilihan yang lebih mudah yang menukar tatasusunan bersekutu terus ke dalam format XML. XMLWriter boleh membantu kami mengawal proses penciptaan fail XML dengan lebih halus. Bergantung pada keperluan sebenar, anda boleh memilih satu atau lebih kaedah ini untuk menukar tatasusunan kepada format XML.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan php kepada format xml. 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