Trình phân tích cú pháp SimpleXML PHP
SimpleXML là một phần mở rộng PHP cho phép chúng ta dễ dàng thao tác và lấy dữ liệu XML.
Trình phân tích cú pháp SimpleXML
SimpleXML là một trình phân tích cú pháp dựa trên cây.
SimpleXML cung cấp một cách dễ dàng để lấy tên, thuộc tính và nội dung văn bản của một phần tử nếu bạn biết cấu trúc hoặc bố cục của tài liệu XML.
SimpleXML biến tài liệu XML thành cấu trúc dữ liệu mà bạn có thể lặp lại giống như một tập hợp các mảng và đối tượng.
So với DOM hoặc trình phân tích cú pháp người nước ngoài, SimpleXML cần ít dòng mã hơn để đọc dữ liệu văn bản từ một phần tử.
Cài đặt
Từ PHP 5, các hàm SimpleXML 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.
PHP SimpleXML - Đọc từ chuỗi
Hàm PHP simplexml_load_string()
được sử dụng để đọc dữ liệu XML từ một chuỗi.
Giả sử chúng ta có một biến chứa dữ liệu XML, như thế này:
$myXMLData =
"<?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>";
Ví dụ bên dưới cho thấy cách sử dụng hàm simplexml_load_string()
để đọc dữ liệu XML từ một chuỗi:
Ví dụ
<?php
$myXMLData =
"<?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>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
Chạy ví dụ »Đầu ra của đoạn mã trên sẽ là:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Mẹo xử lý lỗi: Sử dụng chức năng libxml để truy xuất tất cả các lỗi XML khi tải tài liệu và sau đó lặp lại các lỗi đó. Ví dụ sau đây cố gắng tải một chuỗi XML bị hỏng:
Ví dụ
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email> [email protected] </wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
Chạy ví dụ »Đầu ra của đoạn mã trên sẽ là:
Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP SimpleXML - Đọc từ tệp
Hàm PHP simplexml_load_file()
được sử dụng để đọc dữ liệu XML từ một tệp.
Giả sử chúng ta có một tệp XML tên là " note.xml ", nó trông như thế nà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>
Ví dụ bên dưới cho thấy cách sử dụng hàm simplexml_load_file()
để đọc dữ liệu XML từ một tệp:
Ví dụ
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>
Chạy ví dụ »Đầu ra của đoạn mã trên sẽ là:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Mẹo: Chương tiếp theo trình bày cách lấy/truy xuất các giá trị nút từ tệp XML bằng SimpleXML!
Thêm PHP SimpleXML
Để biết thêm thông tin về các hàm PHP SimpleXML, hãy truy cập Tài liệu tham khảo PHP SimpleXML của chúng tôi.