Trình phân tích cú pháp người nước ngoài PHP XML
Trình phân tích cú pháp XML Expat tích hợp sẵn giúp bạn có thể xử lý các tài liệu XML bằng PHP.
Trình phân tích cú pháp người nước ngoài XML
Trình phân tích cú pháp người nước ngoài là trình phân tích cú pháp dựa trên sự kiện.
Hãy xem phân số 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 gồm 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 XML Expat Parser 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ụ bên dưới:
<?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>
Đang khởi tạo Trình phân tích cú pháp người nước ngoài XML
Chúng tôi muốn khởi tạo Trình phân tích cú pháp người nước ngoài XML trong PHP, xác định một số trình xử lý cho các sự kiện XML khác nhau và sau đó phân tích cú pháp tệp XML.
Ví 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);
?>
Chạy ví dụ »Ví dụ giải thích:
- Khởi tạo trình phân tích cú pháp XML bằng hàm
xml_parser_create()
- 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 hàm
xml_set_element_handler()
để 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 hàm
xml_set_character_data_handler()
để 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 tệp "note.xml" bằng hàm
xml_parse()
- Trong trường hợp có lỗi, hãy thêm hàm
xml_error_string()
để chuyển lỗi XML thành mô tả văn bản - Gọi hàm
xml_parser_free()
để giải phóng bộ nhớ được cấp phát bằng hàmxml_parser_create()
Thêm Trình phân tích cú pháp XML của PHP
Để biết thêm thông tin về các hàm PHP Expat, hãy truy cập Tham khảo trình phân tích cú pháp XML PHP của chúng tôi.