DOM XML trong PHP
- Trang trước XML Expat Parser
- Trang tiếp theo XML SimpleXML
Bộ phân tích DOM tích hợp giúp xử lý tài liệu XML trong PHP trở nên có thể.
DOM là gì?
W3C DOM cung cấp bộ đối tượng tiêu chuẩn cho tài liệu HTML và XML, cũng như các giao diện tiêu chuẩn để truy cập và thao tác các tài liệu này.
W3C DOM được chia thành các phần khác nhau (Core, XML và HTML) và các cấp độ khác nhau (DOM Level 1/2/3):
- Core DOM - Định nghĩa bộ đối tượng tiêu chuẩn cho bất kỳ tài liệu cấu trúc nào
- XML DOM - Định nghĩa bộ đối tượng tiêu chuẩn cho tài liệu XML
- HTML DOM - Định nghĩa bộ đối tượng tiêu chuẩn cho tài liệu HTML
Nếu bạn muốn học thêm về XML DOM, hãy truy cập trang web của chúng tôi Giáo trình XML DOM。
Phân tích XML
Để đọc và cập nhật - tạo và xử lý một tài liệu XML, bạn cần bộ phân tích XML.
Có hai loại bộ phân tích XML cơ bản:
- Bộ phân tích dựa trên cây:Loại bộ phân tích này chuyển đổi tài liệu XML thành cấu trúc cây. Nó phân tích toàn bộ tài liệu và cung cấp API để truy cập các phần tử trong cây, chẳng hạn như Document Object Model (DOM).
- Bộ phân tích dựa trên sự kiện:Xem tài liệu XML như một loạt các sự kiện. Khi một sự kiện cụ thể xảy ra, bộ phân tích sẽ gọi hàm để xử lý.
Bộ phân tích DOM dựa trên cây.
Hãy xem đoạn tài liệu XML sau đây:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
XML DOM xem XML như một cấu trúc cây:
- Cấp độ 1: Tài liệu XML
- Cấp độ 2: Cơ sở gốc: <from>
- Cấp độ 3: Thành phần văn bản: "John"
Cài đặt
Hàm phân tích DOM XML là một phần của PHP cốt lõi. Bạn không cần cài đặt mà vẫn có thể sử dụng các hàm này.
Tệp XML
Trong ví dụ của chúng ta sẽ sử dụng tệp XML sau đây:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
Tải và xuất XML
Chúng ta cần khởi tạo bộ giải mã XML, tải XML và xuất ra:
Ví dụ
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
Kết quả đầu ra của đoạn mã trên:
George John Reminder Don't forget the meeting!
Nếu bạn xem mã nguồn trong cửa sổ trình duyệt, bạn sẽ thấy những đoạn HTML sau đây:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
Ví dụ trên đã tạo ra một đối tượng DOMDocument và đã tải XML từ tệp "note.xml" vào đối tượng tài liệu này.
Hàm saveXML() sẽ đưa nội dung của tài liệu XML nội bộ vào một chuỗi, từ đó chúng ta có thể xuất nó ra.
Lặp XML
Chúng ta cần khởi tạo bộ giải mã XML, tải XML và lặp qua tất cả các phần tử của phần tử <note>:
Ví dụ
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
Kết quả đầu ra của đoạn mã trên:
#text = to = George #text = from = John #text = heading = Lời nhắc #text = body = Đừng quên cuộc họp! #text =
Trong ví dụ trên, bạn đã thấy các nút văn bản trống giữa các phần tử.
Khi XML được tạo ra, nó thường chứa khoảng trống giữa các nút. XML DOM parser coi chúng là các phần tử bình thường, nếu bạn không chú ý đến chúng, đôi khi có thể gây ra vấn đề.
Nếu bạn muốn học thêm về XML DOM, hãy truy cập trang web của chúng tôi Giáo trình XML DOM。
- Trang trước XML Expat Parser
- Trang tiếp theo XML SimpleXML