สร้างไฟล์ 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 ผ่าน