PHP XML Expat 解析器
内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能。
什么是 XML?
XML 用于描述数据,其焦点是数据是什么。XML 文件描述了数据的结构。
在 XML 中,没有预定义的标签。您必须定义自己的标签。
ຖ້າທ່ານຕ້ອງຮຽນຫຼາຍກວ່າ XML, ທ່ານສາມາດຢືນຢັນທີ່ພວກເຮົາມີ: ຫົວຂໍ້ບູລິບປັບ XML.
ຫຍັງແມ່ນ Expat?
ສຳລັບການອ່ານ ແລະ ການປັບປຸງ - ການສ້າງ ແລະ ຈັດການເອກະສານ XML, ທ່ານຕ້ອງການ XML 解析器.
ມີສອງປະເພດການສັບສວນ XML ພື້ນຖານ:
- Expat 解析器: ການສັບສວນທີ່ປ່ຽນເອກະສານ XML ຄືເປັນແບບຕົວແທນ. ມັນທຳນາຍງານທັງໝົດເອກະສານ, ແລະຈະຕັດສິນລະບົບ API ເພື່ອເຂົ້າເຖິງປະກອບຂອງຕົວແທນ, ເຊັ່ນວ່າ ພາບແບບໂຕເລົ່າ (DOM).
- Expat 解析器: ການພິຈາລະນາເອກະສານ XML ຄືເປັນເຫດການ. ເວລາທີ່ເຫດການພິຈາລະນາ, ການສັບສວນຈະເອິ້ນຫຼັກວຽກຂອງພວກເຮົາເພື່ອຈັດການ.
Expat 解析器
ການສັບສວນຕາມເຫດການຄວາມສຳຄັນກັບເນື້ອທີ່ໃນເອກະສານ XML, ບໍ່ມີຄວາມສຳຄັນກັບຜົນຂອງພວກເຂົາ. ດັ່ງນັ້ນ, ການສັບສວນຕາມເຫດການສາມາດເຂົ້າເຖິງຂໍ້ມູນຫຼາຍກວ່າການສັບສວນຕາມແບບຕົວແທນ.
ບັນທຶກ XML ດັ່ງລຸ່ມນັ້ນ:
<from>John</from>
ການສັບສວນຕາມເຫດການຂອງ Expat ລາຍງານ XML ຄືເປັນສາຍສາຍສາຍເຫດການສາມກັນ:
- ເລີ່ມປະກອບ: from
- ເລີ່ມຂອງ CDATA, ຄູ່ມູນ: John
- ປິດປະກອບ: from
ທີ່ເລີ່ມມາ XML ຂອງພວກເຮົາກວມເອົາ XML ທີ່ມີຮູບແບບທີ່ດີທີ່ສຸດ. ແຕ່, ຄັ້ງນີ້ເປັນ XML ທີ່ບໍ່ມີປະສິດທິພາບ, ຍ້ອນບໍ່ມີການກ່ຽວຂ້ອງ DTD ທີ່ອີກຫຼື DTD ບັນຈຸຢູ່ໃນອາຄານ.
ແຕ່, ບໍ່ມີການແຕກຕ່າງກັນໃນການນຳໃຊ້ການສັບສວນ Expat. Expat ບໍ່ກວດກາຄວາມມີປະສິດທິພາບ, ລົບໄປຫາ DTD.
Expat ເປັນການສັບສວນ XML ຕາມເຫດການ, ບໍ່ມີການກວດສອບ, ດີທີ່ສຸດແລະຄວາມຂວັງ, ພຽງແຕ່ຫຼາຍກວ່າການສັບສວນຕາມແບບຕົວແທນ. ມັນສວນງາມສຳຄັນສຳລັບການນຳໃຊ້ PHP ສຳລັບການສະແດງເວັບໄຊ.
ຄວາມຄິດ:ເອກະສານ XML ຕ້ອງມີຮູບແບບທີ່ດີທີ່ສຸດຫຼາຍກວ່າບໍ່ຈະເປັນບັນຫາການສ້າງຂໍ້ບັນຫາຈາກ Expat.
ການຕິດຕັ້ງ
XML Expat 解析器ອາດເປັນສ່ວນໜຶ່ງຂອງ PHP ຄວາມສາມາດບໍ່ຈຳເປັນການຕິດຕັ້ງຈະນຳໃຊ້ຫຼັກວຽກນັ້ນ.
ເອກະສານ XML
ພວກເຮົາຈະໃຊ້ເອກະສານ XML ດັ່ງລຸ່ມນັ້ນໃນຄວາມສຳຄັນຂອງພວກເຮົາ:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>ຄຳເຕືອນ</heading> <body>ບໍ່ອອກຫຼັງການປະຊຸມ!</body> </note>
ກຳນົດ XML parser
ພວກເຮົາຈະກຳນົດ XML parser ໃນ 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: George From: John Heading: Reminder Message: ບໍ່ຫາກຈະລືມການປະຊຸມ!
ການອະທິບາຍຄວາມປະຕິບັດງານ:
- ການການວິວັດວຽງ XML Parser ໂດຍ xml_parser_create() Function
- ການສ້າງບູລິບປັບ ສຳລັບການດຳເນີນງານຂອງການຄວບຄຸມອາກາດທີ່ຫຼາກຫຼາຍ
- ການເພີ່ມ xml_set_element_handler() Function ເພື່ອກໍານົດການດຳເນີນງານຂອງບູລິບປັບ ເມື່ອບູລິບປັບພົບແຕ່ກົງແລະປິດຕົວກົງ
- ການເພີ່ມ xml_set_character_data_handler() Function ເພື່ອກໍານົດການດຳເນີນງານຂອງບູລິບປັບ ເມື່ອບູລິບປັບພົບຄວາມມອງ
- ການການບັນທຶກຫາບູລິບປັບ xml_parse() Function ເພື່ອບັນທຶກເອກະສານ "test.xml"
- ຖ້າມີຂໍ້ບົກຜິດ, ການເພີ່ມ xml_error_string() Function ເພື່ອປ່ຽນ XML Error ເປັນຄຳເຫັນຫຼັກ
- ການເອິ້ນ xml_parser_free() Function ເພື່ອອອກຫຼັງຄວາມຈຳນວນຄວາມມອງທີ່ມອບໃຫ້ໂດຍ xml_parser_create() Function
ຂໍ້ມູນກ່ຽວກັບ PHP Expat Parser ອື່ນໆ
ສຳລັບຂໍ້ມູນກ່ຽວກັບ PHP Expat Function, ການເຂົ້າຫາ PHP XML Parser Reference Manual ຂອງພວກເຮົາ.