Trình phân tích cú pháp PHP SimpleXML
SimpleXML là một phần mở rộng của 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 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 một tài liệu XML thành một 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 Expat, SimpleXML mất í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ư sau:
$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ụ dưới đây cho thấy cách sử dụng simplexml_load_string()
hàm để đọc dữ liệu XML từ một chuỗi:
Thí 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);
?>
Đầ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 cố gắng tải một chuỗi XML bị hỏng:
Thí 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);
}
?>
Đầ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 được gọi là " note.xml ", trông giống như sau:
<?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ụ dưới đây cho thấy cách sử dụng simplexml_load_file()
hàm để đọc dữ liệu XML từ một tệp:
Thí dụ
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>
Đầ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 với 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 .