Hướng dẫn PHP XML: Tạo, phân tích cú pháp, đọc bằng ví dụ

XML là gì?

XML là từ viết tắt của Ngôn ngữ đánh dấu mở rộng.

XML được sử dụng để cấu trúc, lưu trữ và vận chuyển dữ liệu từ hệ thống này sang hệ thống khác.

XML tương tự như HTML.

Nó sử dụng thẻ mở và đóng.

Không giống như HTML, XML cho phép người dùng xác định các thẻ của riêng họ.

DOM là gì?

DOM là từ viết tắt của Mô hình đối tượng tài liệu.

Đó là một tiêu chuẩn trung lập về ngôn ngữ và đa nền tảng xác định cách truy cập và thao tác dữ liệu trong đó;

  • HTML
  • XHTML
  • XML

DOM XML được sử dụng để truy cập và thao tác các tài liệu XML. Nó xem tài liệu XML như một cấu trúc cây.

Trình phân tích cú pháp XML

Trình phân tích cú pháp XML là một chương trình dịch tài liệu XML thành Đối tượng Mô hình Đối tượng Tài liệu XML (DOM).

Đối tượng XML DOM sau đó có thể được thao tác bằng cách sử dụng JavaKịch bản, Pythonvà PHP, v.v.

Từ khóa CDATA là từ viết tắt của Dữ liệu ký tự (Chưa phân tích cú pháp) được sử dụng để bỏ qua các ký tự đặc biệt như “<,>” khi phân tích cú pháp tài liệu XML.

Tại sao nên sử dụng XML?

  • Các dịch vụ web như SOAP và REST sử dụng định dạng XML để trao đổi thông tin. Tìm hiểu XML là gì và cách thức hoạt động của nó sẽ giúp bạn có được lợi thế cạnh tranh với tư cách là nhà phát triển vì các ứng dụng hiện đại sử dụng nhiều dịch vụ web.
  • Tài liệu XML có thể được sử dụng để lưu trữ các cài đặt cấu hình của ứng dụng
  • Nó cho phép bạn tạo các thẻ tùy chỉnh của riêng mình để làm cho nó linh hoạt hơn.

Ví dụ về Tài liệu XML

Giả sử bạn đang phát triển một ứng dụng lấy dữ liệu từ một dịch vụ web ở định dạng XML.

Dưới đây là mẫu tài liệu XML trông như thế nào.

<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
        <record man_no = "101">
            <name>Joe Paul</name>
            <position>CEO</position>
        </record>
        <record man_no = "102">
            <name>Tasha Smith</name>
            <position>Finance Manager</position>
        </record>
</employees>

ĐÂY,

  • “ ” chỉ định phiên bản xml sẽ được sử dụng và mã hóa
  • “ ” là phần tử gốc.
  • “ … ” lần lượt là các phần tử con của quản trị và bán hàng.

Cách đọc XML bằng PHP

Bây giờ chúng ta hãy viết mã để đọc tài liệu XML của nhân viên và hiển thị kết quả trong trình duyệt web. Index.php

<?php
$xml = simplexml_load_file('employees.xml');
echo '<h2>Employees Listing</h2>';
$list = $xml->record;
for ($i = 0; $i < count($list); $i++) {
    echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';
    echo 'Name: ' . $list[$i]->name . '<br>';
    echo 'Position: ' . $list[$i]->position . '<br><br>';
}
?>

ĐÂY,

  • “$xml = simplexml_load_file('employees.xml');” sử dụng hàm simplexml_load_file để tải tên tệp employees.xml và gán nội dung cho biến mảng $xml.
  • “$list = $xml->bản ghi;” lấy nội dung của nút bản ghi.
  • “for ($i = 0; $i < count(…)…” là vòng lặp for đọc mảng số và đưa ra kết quả
  • “$list[$i]->attributes()->man_no;” đọc thuộc tính man_no của phần tử
  • “$list[$i]->name;” đọc giá trị của phần tử con tên
  • “$list[$i]->position;” đọc giá trị của phần tử con vị trí

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu tệp index.php trong thư mục phptus/xml, hãy duyệt đến URL http://localhost/phptuts/xml/index.php

Đọc XML bằng PHP

Cách tạo tài liệu XML bằng PHP

Bây giờ chúng ta sẽ xem cách tạo một tài liệu XML bằng PHP.

Chúng ta sẽ sử dụng ví dụ trên trong sơ đồ cây DOM.

Đoạn mã sau sử dụng lớp DOMDocument tích hợp sẵn trong PHP để tạo tài liệu XML.

<?php

	$dom = new DOMDocument();

		$dom->encoding = 'utf-8';

		$dom->xmlVersion = '1.0';

		$dom->formatOutput = true;

	$xml_file_name = 'movies_list.xml';

		$root = $dom->createElement('Movies');

		$movie_node = $dom->createElement('movie');

		$attr_movie_id = new DOMAttr('movie_id', '5467');

		$movie_node->setAttributeNode($attr_movie_id);

	$child_node_title = $dom->createElement('Title', 'The Campaign');

		$movie_node->appendChild($child_node_title);

		$child_node_year = $dom->createElement('Year', 2012);

		$movie_node->appendChild($child_node_year);

	$child_node_genre = $dom->createElement('Genre', 'The Campaign');

		$movie_node->appendChild($child_node_genre);

		$child_node_ratings = $dom->createElement('Ratings', 6.2);

		$movie_node->appendChild($child_node_ratings);

		$root->appendChild($movie_node);

		$dom->appendChild($root);

	$dom->save($xml_file_name);

	echo "$xml_file_name has been successfully created";
?>

ĐÂY,

  • “$dom = DOMDocument mới();” tạo một thể hiện của lớp DOMDocument.
  • “$dom->encoding = 'utf-8';” đặt mã hóa tài liệu thành utf-8
  • “$dom->xmlVersion = '1.0';” chỉ định số phiên bản 1.0
  • “$dom->formatOutput = true;” đảm bảo rằng đầu ra được định dạng tốt
  • “$root = $dom->createElement('Phim');” tạo nút gốc có tên Phim
  • “$attr_movie_id = DOMAttr mới('movie_id', '5467');” xác định thuộc tính id phim của nút Phim
  • “$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” tạo nút con của nút Phim. ElementName chỉ định tên của phần tử, ví dụ Tiêu đề. ElementValue đặt giá trị nút con, ví dụ: Chiến dịch.
  • “$root->appendChild($movie_node);” nối các phần tử movie_node vào nút gốc Phim
  • “$dom->appendChild($root);” nối thêm nút gốc vào tài liệu XML.
  • “$dom->save($xml_file_name);” lưu tệp XML vào thư mục gốc của máy chủ web.
  • “tiếng vang ' ' . $xml_file_name . ' đã được tạo thành công';” tạo liên kết đến tệp XML.

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu tệp create_movies_list trong thư mục phptuts/xml, hãy duyệt đến URL http://localhost/phptuts/xml/create_movies_list.php

Tạo một tài liệu XML bằng PHP

Nhấp vào liên kết movies_list_xml

Tạo một tài liệu XML bằng PHP

Tổng kết

  • XML là từ viết tắt của Ngôn ngữ đánh dấu mở rộng
  • XML có thể được sử dụng để trao đổi thông tin giữa các hệ thống hoặc lưu trữ cài đặt cấu hình của ứng dụng, v.v.
  • DOM là từ viết tắt của Mô hình đối tượng tài liệu. XML DOM xem tài liệu XML dưới dạng cấu trúc cây
  • Trình phân tích cú pháp XML là một chương trình dịch XML một tài liệu XML thành một tài liệu giống như cấu trúc cây DOM.
  • CDATA được sử dụng để bỏ qua các ký tự đặc biệt khi phân tích tài liệu XML.
  • PHP sử dụng simplexml_load_file để đọc các tài liệu XML và trả về kết quả dưới dạng một mảng số
  • Lớp PHP DOMDocument để tạo các tệp XML.