ให้เรตสมาชิก: 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 ผ่าน 
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามครับ เชื่อมฐานข้อมูล Wordpress ไม่ได้ครับ
โดย chatee supasand ส 19 ต.ค. 2019 4:07 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
3
73
ส 19 ต.ค. 2019 6:57 pm โดย nidhiwani
วิธีการสร้าง logfile ในภาษา Python ด้วย logging
โดย jirawoot ศ 18 ต.ค. 2019 1:21 pm บอร์ด Python Knowledge
1
187
ส 19 ต.ค. 2019 4:25 am โดย mindphp
เปิดโพย รวมมิตรไอโฟนตกรุ่น เริ่ม 900.-
โดย promotion ศ 18 ต.ค. 2019 11:42 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
23
ศ 18 ต.ค. 2019 11:42 am โดย promotion
ทำยังไงถึงจะ upload file เข้าไปอยู่ในโฟร์เดอร์ได้ครับ
โดย jamepiyawat พฤ 17 ต.ค. 2019 6:27 pm บอร์ด Programming - PHP
1
59
พฤ 17 ต.ค. 2019 6:30 pm โดย tsukasaz
สร้างไฟล์ PDF ด้วยภาษา PHP
โดย kkk_k พฤ 17 ต.ค. 2019 1:08 am บอร์ด Programming - PHP
1
76
พฤ 17 ต.ค. 2019 1:23 am โดย mindphp
ถามเรื่องเช็คตัวเลขว่ามีเลขที่มากกว่า 10 เเต่น้อยกว่า 20 กี่ตัวยังไงครับ
โดย Golff Sinlapachai พ 16 ต.ค. 2019 6:19 pm บอร์ด Programming - PHP
1
54
พ 16 ต.ค. 2019 6:25 pm โดย mindphp
ฐานข้อมูลค่ะ
โดย sopida พ 16 ต.ค. 2019 3:37 pm บอร์ด Programming - PHP
1
47
พ 16 ต.ค. 2019 3:53 pm โดย thatsawan
replace หลายจุด และหลาย pattern พร้อมกันจบในการรันคำสั่งครั้งเดียว
โดย jataz2 พ 16 ต.ค. 2019 3:17 pm บอร์ด Programming - C/C++ & java & Python
0
38
พ 16 ต.ค. 2019 3:17 pm โดย jataz2
อัพเดพตัว Build Windows 10 แอพ Your Phone รับสายเรียกเข้า-โทรออกจาก สมาร์ทโฟนได้แล้ว
โดย chatee supasand อ 15 ต.ค. 2019 12:18 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
55
อ 15 ต.ค. 2019 12:18 pm โดย chatee supasand
ตัวอย่างการสร้าง Service odoo13 บน Ubuntu 16.04
โดย mindphp ส 12 ต.ค. 2019 1:35 am บอร์ด Linux - Web Server
0
99
ส 12 ต.ค. 2019 1:35 am โดย mindphp
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 3:30 pm บอร์ด Joomla Development
3
84
ศ 11 ต.ค. 2019 5:14 pm โดย เห็ด อินโมชั่น
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 4:59 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
7
2224
ส 12 ต.ค. 2019 3:35 am โดย mindphp
อยากทราบวิธีนับจำนวน id ที่ซ้ำกัน ครับ
โดย jamepiyawat ศ 11 ต.ค. 2019 5:06 pm บอร์ด SQL - Database
3
173
ศ 11 ต.ค. 2019 6:20 pm โดย jamepiyawat
การ Search ค้นหาข้อมูลของบอร์ด phpBB
โดย aninthana พฤ 10 ต.ค. 2019 6:46 pm บอร์ด Wordpress user Guide Knowledge
0
133
พฤ 10 ต.ค. 2019 6:46 pm โดย aninthana
ทำป้าย PopUp ด้วย Modal ใน Bootstrap เวอร์ชั่น 4
โดย jamepiyawat พฤ 10 ต.ค. 2019 5:20 pm บอร์ด Booststap Knowledge
0
140
พฤ 10 ต.ค. 2019 5:20 pm โดย jamepiyawat
ทำยังไงถึงจะไม่ให้แสดงเลข ID หน้า Alias ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 4:03 pm บอร์ด Joomla Development
1
60
พฤ 10 ต.ค. 2019 6:02 pm โดย tsukasaz
ทำไมผมถึงดึงข้อมูลชื่อหมวดหมู่ออกมาแสดงหน้าตั้งค่า module ไม่ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 3:47 pm บอร์ด Joomla Development
2
66
พฤ 10 ต.ค. 2019 6:36 pm โดย jamepiyawat
ตัวเลขด้านหน้าข้อความที่เราตั้ง Alias คืออะไรครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 11:36 am บอร์ด Joomla Development
5
145
พฤ 10 ต.ค. 2019 2:46 pm โดย mindphp
แก้ปัญหา Error Ignoring file '50unattended-upgrades.ucf-old' in directory บน Ubunto 16.04 ติดตั้ง apt-get
โดย mindphp พฤ 10 ต.ค. 2019 5:42 am บอร์ด Linux - Web Server
0
112
พฤ 10 ต.ค. 2019 5:42 am โดย mindphp
Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP
โดย birdkritsna พ 09 ต.ค. 2019 3:42 pm บอร์ด Programming - PHP
6
157
พฤ 10 ต.ค. 2019 2:07 pm โดย birdkritsna