PHP XML Expat Parser
Trình phân tích cú pháp XML Expat tích hợp giúp xử lý các tài liệu XML bằng PHP.
Trình phân tích cú pháp XML Expat
Trình phân tích cú pháp Expat là trình phân tích cú pháp dựa trên sự kiện.
Nhìn vào phần XML sau:
<from>Jani</from>
Trình phân tích cú pháp dựa trên sự kiện báo cáo XML ở trên dưới dạng một chuỗi ba sự kiện:
- Phần tử bắt đầu: từ
- Bắt đầu phần CDATA, giá trị: Jani
- Đóng phần tử: từ
Các hàm của Trình phân tích cú pháp ngoại ngữ XML là một phần của lõi PHP. Không cần cài đặt để sử dụng các chức năng này.
Tệp XML
Tệp XML "note.xml" sẽ được sử dụng trong ví dụ dưới đây:
<?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>
Khởi tạo trình phân tích cú pháp XML Expat
Chúng tôi muốn khởi tạo Trình phân tích cú pháp XML Expat trong PHP, xác định một số trình xử lý cho các sự kiện XML khác nhau, sau đó phân tích cú pháp tệp XML.
Thí dụ
<?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("note.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);
?>
Ví dụ được giải thích:
- Khởi tạo trình phân tích cú pháp XML với
xml_parser_create()
hàm - Tạo các hàm để sử dụng với các trình xử lý sự kiện khác nhau
- Thêm
xml_set_element_handler()
hàm để chỉ định hàm nào sẽ được thực thi khi trình phân tích cú pháp gặp thẻ mở và thẻ đóng - Thêm
xml_set_character_data_handler()
hàm để chỉ định hàm nào sẽ thực thi khi trình phân tích cú pháp gặp dữ liệu ký tự - Phân tích cú pháp tệp "note.xml" bằng
xml_parse()
hàm - Trong trường hợp xảy ra lỗi, hãy thêm
xml_error_string()
hàm để chuyển lỗi XML thành mô tả dạng văn bản - Gọi
xml_parser_free()
hàm để giải phóng bộ nhớ được cấp phát vớixml_parser_create()
hàm
Thêm PHP XML Expat Parser
Để biết thêm thông tin về các hàm PHP Expat, hãy truy cập Tài liệu tham khảo trình phân tích cú pháp PHP XML của chúng tôi .