สร้างไฟล์ xml แบบมีมาตรฐานด้วย DOMDocument  (DOM ย่อมาจาก Document Object Model)
การสร้างไฟล์ XML เพื่อใช้สำหรับแปลกเปลี่ยนข้อมูล กันนั้น สามารถทำได้หลายแบบ เช่น การเตรียมข้อมูลเป็น tag xml เก็บไว้เป็น string ชุดหนึ่ง แล้ว เขียนข้อมูลลงไฟล์ ด้วยฟังก์ชั่น จัดการการต่างๆ เช่น fwrite(), file_put_contents() ซึ่งผลที่ได้คือ เราจะมีไฟล์ ที่มีรูปแบบเป็น xml ตามที่เรากำหนดขึ้นมาเองซึ่งทำแบบนี้ก็ใช้งานได้ แต่ก็ยังมีข้อจำกัดหลายอย่าง และมันไม่ยืดหยุ่นและมีมาตรฐานเท่ากับการใช้ Class ที่ php เตรียมไว้ให้โดยเฉพาะ เช่น DOMDocument
ข้อดีของ การใช้ 
DOMDocument ในการสร้างไฟล์ คือ

1. เราสามารถ กำหนดมาตรฐานของ ไฟล์ ที่เราสร้างได้
2. output ในไฟล์ มีฟังก์ชั่นสำหรับตรจสอบความถูกต้องของ มาตรฐานที่เรากำหนด กับ tag ที่ส่งเขียนลงไฟล์ output ที่ได้ ตรงตาม w3c
3. สนับสนุน utf8 โดยต้องมากำหนด header เอง
4. เปลี่ยน output เป็นรูปแบบอื่นได้ง่าย เช่นจะเปลี่ยนเป็น HTML ก็ทำได้ง่าย
5. กำหนด Element สร้าง Attribute ต่างๆ ได้ง่าย สนับสนุน CDATA
6. อื่นๆ....
คราวต่อไปสร้าง ไฟล์ xml มาใช้ DOMDocument กันดีกว่าครับ
โดยที่  DOMDocument เริ่มมีให้เราใช้ ตั้งแต่ php เวอร์ชั่น 5.0 เป็นต้นไป
 $dom = new DOMDocument('1.0', 'utf-8');

 $database_name = 'mindphp';
 $filename    = 'mindphp_save_file.xml';
 
       // Create Database node
 $database = $dom->createElement ( 'database' );
 $database = $dom->appendChild ( $database );
 $database->setAttribute ( 'name', $database_name);
 
  // Create phpbb node
$phpbb = $dom->createElement ( 'phpbb' );
$phpbb = $dom->appendChild ( $phpbb );
$phpbb->setAttribute ( 'phpbb_forum_id' , 'id');
$cdataNode = $dom->createCDATASection( 'phpbbthailand.com' );
$cdataNode = $dom->appendChild ( $cdataNode );
$phpbb->appendChild ( $cdataNode );
$database->appendChild ( $phpbb );


$dom->formatOutput = true;
$dom->saveXML ();
$dom->save ( $filename );

ผลที่ได้จากไฟล์ mindphp_save_file.xml

<?xml version="1.0" encoding="utf-8"?>
<database name="mindphp">
  <phpbb phpbb_forum_id="id"><![CDATA[phpbbthailand.com]]></phpbb>
</database>จะเห็นว่า xml ของเราได้มาตรฐาน validate w3c ผ่าน 
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
166
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
125
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
270
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
โดย @Foretoday อ 12 มี.ค. 2024 1:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
184
อ 12 มี.ค. 2024 1:46 pm โดย @Foretoday View Topic ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
โดย witsarutt000 จ 11 มี.ค. 2024 6:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
142
จ 11 มี.ค. 2024 6:14 pm โดย witsarutt000 View Topic แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
โดย mindphp อ 10 มี.ค. 2024 4:36 am บอร์ด Linux - Web Server
0
239
อ 10 มี.ค. 2024 4:36 am โดย mindphp View Topic ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
IP และ vpn (VMware)
โดย ballmykids อ 10 มี.ค. 2024 2:35 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
203
จ 11 มี.ค. 2024 3:19 pm โดย ballmykids View Topic IP และ vpn (VMware)
แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว
โดย Anonymous ศ 08 มี.ค. 2024 7:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
166
ศ 08 มี.ค. 2024 8:12 pm โดย mindphp View Topic แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว