SimpleXML trong PHP

SimpleXML xử lý các nhiệm vụ XML phổ biến nhất, các nhiệm vụ khác sẽ được giao cho các mở rộng khác.

SimpleXML là gì?

SimpleXML là một tính năng mới trong PHP 5. Trong trường hợp hiểu được layout của tài liệu XML, nó là một cách tiện lợi để lấy thuộc tính và văn bản của phần tử.

So với bộ phân tích DOM hoặc Expat, SimpleXML chỉ cần một số dòng mã để đọc dữ liệu văn bản từ phần tử.

SimpleXML có thể chuyển đổi tài liệu XML thành đối tượng, ví dụ:

  • Phần tử - được chuyển đổi thành đối tượng SimpleXMLElement. Khi có nhiều phần tử ở cùng một cấp độ, chúng sẽ được đặt trong một mảng.
  • Thuộc tính - được truy cập qua mảng liên quan, trong đó chỉ số tương ứng với tên thuộc tính.
  • Dữ liệu phần tử - văn bản dữ liệu từ phần tử được chuyển đổi thành chuỗi. Nếu một phần tử có nhiều node văn bản, chúng sẽ được sắp xếp theo thứ tự chúng được tìm thấy.

Khi thực hiện các nhiệm vụ cơ bản như sau, SimpleXML rất nhanh chóng để sử dụng:

  • Đọc tệp XML
  • Trích dữ liệu từ chuỗi XML
  • Chỉnh sửa văn bản node hoặc thuộc tính

Nhưng, khi xử lý XML cao cấp như namespace, tốt nhất nên sử dụng bộ phân tích Expat hoặc XML DOM.

Cài đặt

Từ PHP 5.0 trở đi, hàm SimpleXML là một phần của PHP core. Bạn không cần cài đặt mà có thể sử dụng các hàm này.

Sử dụng SimpleXML

Dưới đây là tệp XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Lời nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
</note>

Chúng tôi dự định xuất tên và dữ liệu của các phần tử con từ tệp XML trên

Đây là điều cần làm:

  1. Tải tệp XML
  2. Lấy tên của phần tử đầu tiên
  3. Sử dụng hàm children() để tạo vòng lặp kích hoạt trên mỗi phần tử con
  4. Xuất mỗi phần tử con của phần tử con

Ví dụ

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

Kết quả đầu ra của đoạn mã trên:

note
to: George
from: John
heading: Lời nhắc nhở
body: Đừng quên cuộc họp!

Thêm thông tin về PHP SimpleXML

Nếu bạn cần thêm thông tin về PHP SimpleXML, hãy truy cập PHP SimpleXML tài liệu tham khảo.