Latest web development tutorials
×

PHP หลักสูตร

PHP หลักสูตร PHP แนะนำโดยย่อ PHP ติดตั้ง PHP ไวยากรณ์ PHP ตัวแปร PHP echo/print PHP ชนิดข้อมูล PHP คงที่ PHP เชือก PHP ผู้ประกอบการ PHP If...Else PHP Switch PHP แถว PHP เรียงลำดับอาร์เรย์ PHP Superglobals PHP While การไหลเวียน PHP For การไหลเวียน PHP ฟังก์ชัน PHP ตัวแปรเมจิก PHP namespaces PHP เชิงวัตถุ

PHP ฟอร์ม

PHP ฟอร์ม PHP รูปแบบการตรวจสอบสิทธิ์ PHP ฟอร์ม - ฟิลด์ที่จำเป็น PHP ฟอร์ม - อีเมลยืนยันและ URL PHP ตัวอย่างสมบูรณ์แบบ PHP $_GET ตัวแปร PHP $_POST ตัวแปร

PHP การสอนที่ทันสมัย

PHP อาร์เรย์หลายมิติ PHP วันที่ PHP บรรจุ PHP ไฟล์ PHP อัปโหลดไฟล์ PHP Cookie PHP Session PHP E-mail PHP ความปลอดภัย E-mail PHP Error PHP Exception PHP กรอง PHP กรองขั้นสูง PHP JSON

PHP 7 คุณสมบัติใหม่

PHP 7 คุณสมบัติใหม่

PHP ฐานข้อมูล

PHP MySQL แนะนำโดยย่อ PHP MySQL สัมพันธ์ PHP MySQL การสร้างฐานข้อมูล PHP MySQL สร้างตารางข้อมูล PHP MySQL แทรกข้อมูล PHP MySQL ใส่ข้อมูลหลาย PHP MySQL งบเตรียม PHP MySQL อ่านข้อมูล PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX แนะนำโดยย่อ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาแบบ Real-time AJAX RSS Reader AJAX โหวต

PHP คู่มืออ้างอิง

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP การประมวลผลภาพ PHP RESTful

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