ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

สร้างไฟล์ 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 ผ่าน 
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ชอบ Feature นี้ของ Joomla ตัวช่วยตรวจสอบ โครงสร้างตารางเวลามีการอัพเกรด
โดย mindphp พ 13 พ.ย. 2019 8:41 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
19
พ 13 พ.ย. 2019 8:41 pm โดย mindphp
งานประจำวันที่ 13 พฤศจิกายน 2562
โดย numtan5839 พ 13 พ.ย. 2019 10:09 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
4
23
พ 13 พ.ย. 2019 9:31 pm โดย thatsawan
Generate QR Code
โดย chaiyasitpraphut พ 13 พ.ย. 2019 7:03 pm บอร์ด MindPHP News / Feedback
0
18
พ 13 พ.ย. 2019 7:03 pm โดย chaiyasitpraphut
การใช้ CSS selectors เพื่ออ้างอิง h1 tag ที่อยุ่ข้างใน div
โดย bankjittapol พ 13 พ.ย. 2019 6:49 pm บอร์ด CSS Knowledge
1
8
พ 13 พ.ย. 2019 6:52 pm โดย mindphp
ประโยชน์ของ IOT - internet of things
โดย chaiyasitpraphut พ 13 พ.ย. 2019 6:49 pm บอร์ด IOT - Internet of things
0
5
พ 13 พ.ย. 2019 6:49 pm โดย chaiyasitpraphut
วิธีการเพิ่ม css ให้กับ class โดยใช้ js
โดย Ittichai_chupol พ 13 พ.ย. 2019 6:41 pm บอร์ด Jquery & Ajax Knowledge
0
6
พ 13 พ.ย. 2019 6:41 pm โดย Ittichai_chupol
ติดตั้ง Broad ESP8266 ลงบน Arduino IDE
โดย chaiyasitpraphut พ 13 พ.ย. 2019 6:37 pm บอร์ด IOT - Internet of things
0
3
พ 13 พ.ย. 2019 6:37 pm โดย chaiyasitpraphut
ทำไมตั้งค่าเมล แบบ POP3 ใน Android ไม่ได้ครับ
โดย chatee supasand พ 13 พ.ย. 2019 6:29 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
2
13
พ 13 พ.ย. 2019 7:01 pm โดย chatee supasand
VDO - โปรแกรมคำนวณอัตราแลกเปลี่ยนสกุลเงิน
โดย numtan5839 พฤ 07 พ.ย. 2019 4:05 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
20
112
พ 13 พ.ย. 2019 6:24 pm โดย mindphp
แนะนำ tools Online
โดย chaiyasitpraphut พ 13 พ.ย. 2019 6:21 pm บอร์ด MindPHP News / Feedback
0
8
พ 13 พ.ย. 2019 6:21 pm โดย chaiyasitpraphut
ปัญหาในการใช้งานเครื่องมือออนไลน์
โดย chaiyasitpraphut พ 13 พ.ย. 2019 6:21 pm บอร์ด MindPHP News / Feedback
0
7
พ 13 พ.ย. 2019 6:21 pm โดย chaiyasitpraphut
แนะนำ Website Free Icon
โดย numtan5839 พ 13 พ.ย. 2019 5:59 pm บอร์ด Graphic design
0
12
พ 13 พ.ย. 2019 5:59 pm โดย numtan5839
เพชรแท้จะไม่ติดสีหมึก จริงหรือ
โดย jiraporn66 พ 13 พ.ย. 2019 4:52 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
7
พ 13 พ.ย. 2019 4:52 pm โดย jiraporn66
VDO - Program Check Tracking Thailand Post
โดย numtan5839 อ 12 พ.ย. 2019 2:12 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
18
พ 13 พ.ย. 2019 4:51 pm โดย thatsawan
NB‑IoT คืออะไร
โดย chaiyasitpraphut พ 13 พ.ย. 2019 4:46 pm บอร์ด IOT - Internet of things
0
5
พ 13 พ.ย. 2019 4:46 pm โดย chaiyasitpraphut
งานประจำวันที่ 13 พฤศจิกายน 2562
โดย chaiyasitpraphut พ 13 พ.ย. 2019 9:50 am บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
7
40
พ 13 พ.ย. 2019 7:22 pm โดย chaiyasitpraphut
report แจ้งปัญหา เวลาสมัครกดเลือกภาษา แล้วเด้งกลับไปหน้าก่อนหน้า
โดย chatee supasand พ 13 พ.ย. 2019 4:04 pm บอร์ด MindPHP News / Feedback
2
12
พ 13 พ.ย. 2019 6:59 pm โดย mindphp
ระหว่าง joomla กับ wordpress แตกต่างกันยังไงครับ
โดย aloha11x พ 13 พ.ย. 2019 2:12 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
11
พ 13 พ.ย. 2019 2:12 pm โดย aloha11x
แนะนำ website สำหรับปรับขนาดรูปภาพ
โดย numtan5839 พ 13 พ.ย. 2019 2:07 pm บอร์ด Graphic design
0
9
พ 13 พ.ย. 2019 2:07 pm โดย numtan5839
Application Blynk
โดย chaiyasitpraphut พ 13 พ.ย. 2019 1:37 pm บอร์ด IOT - Internet of things
0
6
พ 13 พ.ย. 2019 1:37 pm โดย chaiyasitpraphut