PHP SimpleXML Parser
SimpleXML คือส่วนขยาย PHP ที่ช่วยให้เราจัดการและรับข้อมูล XML ได้อย่างง่ายดาย
ตัวแยกวิเคราะห์ SimpleXML
SimpleXML เป็นตัวแยกวิเคราะห์แบบต้นไม้
SimpleXML มอบวิธีง่ายๆ ในการรับชื่อองค์ประกอบ คุณลักษณะและเนื้อหาที่เป็นข้อความ หากคุณทราบโครงสร้างหรือเค้าโครงของเอกสาร XML
SimpleXML เปลี่ยนเอกสาร XML ให้เป็นโครงสร้างข้อมูลที่คุณทำซ้ำได้ เช่น คอลเล็กชันของอาร์เรย์และอ็อบเจ็กต์
เมื่อเปรียบเทียบกับ DOM หรือตัวแยกวิเคราะห์ Expat แล้ว SimpleXML ใช้โค้ดน้อยกว่าบรรทัดเพื่ออ่านข้อมูลข้อความจากองค์ประกอบ
การติดตั้ง
จาก PHP 5 ฟังก์ชัน SimpleXML เป็นส่วนหนึ่งของแกนหลักของ PHP ไม่จำเป็นต้องติดตั้งเพื่อใช้ฟังก์ชันเหล่านี้
PHP SimpleXML - อ่านจากสตริง
ฟังก์ชัน PHP simplexml_load_string()
ใช้ในการอ่านข้อมูล XML จากสตริง
สมมติว่าเรามีตัวแปรที่มีข้อมูล XML เช่นนี้
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
ตัวอย่างด้านล่างแสดงวิธีการใช้simplexml_load_string()
ฟังก์ชันเพื่ออ่านข้อมูล XML จากสตริง:
ตัวอย่าง
<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
เคล็ดลับในการจัดการข้อผิดพลาด:ใช้ฟังก์ชัน libxml เพื่อดึงข้อมูลข้อผิดพลาด XML ทั้งหมดเมื่อโหลดเอกสารแล้ววนซ้ำข้อผิดพลาด ตัวอย่างต่อไปนี้พยายามโหลดสตริง XML ที่เสียหาย:
ตัวอย่าง
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>[email protected]</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP SimpleXML - อ่านจากไฟล์
ฟังก์ชัน PHP simplexml_load_file()
ใช้เพื่ออ่านข้อมูล XML จากไฟล์
สมมติว่าเรามีไฟล์ XML ชื่อ " note.xml " ซึ่งมีลักษณะดังนี้:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ตัวอย่างด้านล่างแสดงวิธีใช้simplexml_load_file()
ฟังก์ชันเพื่ออ่านข้อมูล XML จากไฟล์:
ตัวอย่าง
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>
ผลลัพธ์ของโค้ดด้านบนจะเป็น:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
เคล็ดลับ:บทต่อไปแสดงวิธีการรับ/ดึงค่าโหนดจากไฟล์ XML ด้วย SimpleXML!
เพิ่มเติม PHP SimpleXML
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน PHP SimpleXML โปรดไปที่ PHP SimpleXML Referenceของเรา