บทช่วยสอน PHP XML parser Expat ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ XML คืออะไร?,สิ่งที่ต่างชาติใช่?,ติดตั้ง,ไฟล์ XML,เริ่มต้นของ XML parser,ข้อมูลเพิ่มเติม PHP parser Expat,

PHP XML parser Expat

Built-in PHP parser Expat ทำให้มันเป็นไปได้ในการประมวลผลเอกสาร XML


XML คืออะไร?

XML ใช้เพื่ออธิบายข้อมูลและให้ความสำคัญกับข้อมูลที่ใช่ ไฟล์ XML อธิบายโครงสร้างของข้อมูล

ใน XML ไม่มีแท็กที่กำหนดไว้ล่วงหน้า คุณต้องกำหนดแท็กของคุณเอง

เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ XML โปรดไปที่ กวดวิชา XML


สิ่งที่ต่างชาติใช่?

การอ่านและการปรับปรุง - การสร้างและกระบวนการ - เอกสาร XML คุณต้องแยกวิเคราะห์ XML

มีสองประเภทพื้นฐานของ parsers XML คือ:

  • parser ต้นไม้ตาม: parser นี้จะแปลงเอกสาร XML ในโครงสร้างต้นไม้ มันวิเคราะห์เอกสารทั้งหมดและให้การเข้าถึงองค์ประกอบในต้นไม้เช่น Document Object Model (DOM)
  • แยกวิเคราะห์เหตุการณ์ตาม: เอกสาร XML เป็นชุดของเหตุการณ์ เมื่อมีเหตุการณ์เฉพาะเกิดขึ้น parser จะเรียกฟังก์ชั่นในการประมวลผล

แยกวิเคราะห์ต่างชาติเป็นเหตุการณ์ตาม parser

เหตุการณ์ตามโฟกัสแยกวิเคราะห์เนื้อหาของเอกสาร XML มากกว่าโครงสร้างของพวกเขา ด้วยเหตุนี้การแยกวิเคราะห์เหตุการณ์ตามสามารถเข้าถึงข้อมูลได้เร็วกว่า parser ต้นไม้ตาม

พิจารณาส่วน XML ต่อไปนี้:

<from>Jani</from>

แยกวิเคราะห์เหตุการณ์ตามรายงาน XML ข้างต้นเป็นชุดของสามเหตุการณ์ที่:

  • เริ่มองค์ประกอบ: จาก
  • เริ่ม CDATA ส่วนค่า: เจนี่
  • ปิดองค์ประกอบ: จาก

xml ตัวอย่างข้างต้นมีรูปแบบที่ดี XML แต่ตัวอย่างนี้ไม่ได้เป็น XML ที่ถูกต้องเพราะการประกาศประเภทของเอกสาร (DTD) ไม่ได้เกี่ยวข้องกับมัน

แต่เมื่อใช้ตัวแยกวิเคราะห์ Expat นี้ทำให้ไม่แตกต่างกัน แยกวิเคราะห์ต่างชาติไม่ได้ตรวจสอบความถูกต้องละเว้น DTD ใด ๆ

เป็นเหตุการณ์ตามการตรวจสอบไม่ใช่ parser XML, Expat ได้อย่างรวดเร็วและมีน้ำหนักเบามากเหมาะสำหรับ PHP การใช้งานเว็บ

หมายเหตุ: เอกสาร XMLจะต้องดีขึ้นมิฉะนั้น Expat จะสร้างข้อผิดพลาด


ติดตั้ง

XML parser Expat ฟังก์ชั่นเป็นส่วนหนึ่งของหลักของ PHP การติดตั้งไม่จำเป็นในการใช้ฟังก์ชั่นเหล่านี้


ไฟล์ XML

ไฟล์ XML ด้านล่างนี้จะถูกนำมาใช้ในตัวอย่างของเรา:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


เริ่มต้นของ XML parser

เราต้องการที่จะเริ่มต้นการแยกวิเคราะห์ XML ใน PHP, กำหนดหน่วยประมวลผลสำหรับการจัดกิจกรรม XML ที่แตกต่างกันแล้วแยกไฟล์ XML

ตัวอย่าง

<?php
//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "NOTE":
echo "-- Note --<br>";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}

//Function to use at the end of an element
function stop($parser,$element_name)
{
echo "<br>";
}

//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}

//Free the XML parser
xml_parser_free($parser);
?>

รหัสข้างต้นส่งออกจะ:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

วิธีการทำงาน:

  1. โดย xml_parser_create () ฟังก์ชั่นเริ่มต้นของ XML parser
  2. สร้างขึ้นด้วยฟังก์ชั่นการจัดการเหตุการณ์ที่แตกต่างกัน
  3. เพิ่ม xml_set_element_handler () ฟังก์ชันที่จะกำหนดซึ่งการทำงานเพื่อดำเนินการเมื่อแยกวิเคราะห์พบเริ่มต้นและสิ้นสุดแท็ก
  4. เพิ่ม xml_set_character_data_handler () ฟังก์ชันที่จะกำหนดซึ่งการทำงานเพื่อดำเนินการเมื่อแยกวิเคราะห์พบข้อมูลตัวอักษร
  5. โดย xml_parse () ฟังก์ชันที่จะแยกไฟล์ "test.xml"
  6. ในกรณีที่มีข้อผิดพลาดแล้วเพิ่ม xml_error_string () ฟังก์ชันการแปลงคำอธิบายข้อความข้อผิดพลาด XML
  7. xml_parser_free () ฟังก์ชั่นการโทรที่จะปล่อยได้รับมอบหมายให้ xml_parser_create () ฟังก์ชั่นหน่วยความจำ

ข้อมูลเพิ่มเติม PHP parser Expat

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน PHP Expat เยี่ยมชมของเรา คู่มืออ้างอิง PHP XML Parser

PHP XML parser Expat
10/30