Thật tuyệt khi biết bạn thực sự muốn làm gì với XML. Cách bạn phân tích nó phụ thuộc rất nhiều vào việc xử lý bạn cần phải thực hiện, cũng như kích thước.
Nếu đây là nhiệm vụ một lần, thì tôi đã bắt đầu trong quá khứ bằng cách khám phá cấu trúc XML trước khi thực hiện bất kỳ điều gì khác. DTDGenerator của tôi (xem saxon.sf.net) được viết cho mục đích này một thời gian dài trước đây và vẫn còn công việc, có những công cụ khác hiện có nhưng tôi không biết liệu họ có xử lý luồng mà là điều kiện tiên quyết ở đây không.
Bạn có thể viết một ứng dụng xử lý dữ liệu bằng cách sử dụng trình phân tích cú pháp kéo hoặc đẩy (SAX hoặc StAX). Làm thế nào dễ dàng này là phụ thuộc vào bao nhiêu chế biến bạn phải làm và bao nhiêu nhà nước bạn phải duy trì, mà bạn đã không nói với chúng tôi. Ngoài ra, bạn có thể thử xử lý XSLT được truyền trực tuyến, có sẵn trong Saxon-EE.
Nguồn
2013-03-12 18:40:46
Đối với các file lớn, luôn luôn sử dụng một cú pháp kéo như XMLReader; chỉ cần thử tải 40GB tệp vào bộ nhớ cho SimpleXML. –
từ các bài đăng có liên quan: http://stackoverflow.com/questions/911663/parsing-huge-xml-files-in-php?rq=1 – hexblot
40 Gb? Ồ, tôi gặp sự cố với tệp xml 700 Mb trên máy mac os x. –