Trong PHP, bạn có thể đọc các tệp XML cực lớn với XMLReader
:
$reader = new XMLReader();
$reader->open($xmlfile);
Các tệp XML cực lớn phải được lưu trữ ở định dạng nén trên đĩa. Ít nhất thì điều này cũng có ý nghĩa vì các tệp XML có tỷ lệ nén cao. Ví dụ được nén như large.xml.gz
.
PHP hỗ trợ điều đó khá tốt với XMLReader
qua trình bao bọc nén
:
$xmlfile = 'compress.zlib://path/to/large.xml.gz';
$reader = new XMLReader();
$reader->open($xmlfile);
XMLReader
cho phép bạn hoạt động trên phần tử hiện tại "only". Điều đó có nghĩa là nó chỉ chuyển tiếp. Nếu bạn cần giữ trạng thái phân tích cú pháp, bạn cần phải xây dựng nó cho riêng mình.
Tôi thường thấy hữu ích khi kết hợp các chuyển động cơ bản thành một tập hợp các trình vòng lặp biết cách hoạt động trên XMLReader
như chỉ lặp qua các phần tử hoặc phần tử con. Bạn tìm thấy điều này được nêu trong Phân tích cú pháp XML với PHP và XMLReader
.
Cũng xem: