2009-01-22 25 views

Trả lời

12

Bạn sẽ phải triển khai logic tùy chỉnh bằng cách sử dụng xmlreader. xmlreader không nạp toàn bộ XML vào bộ nhớ trước khi sử dụng nó, có nghĩa là bạn có thể đọc nó từ một luồng và xử lý nó như vậy.

6

XMLTextreader không được phép treo vì luồng của nó dựa trên và chỉ hoạt động trên các phần dữ liệu.

Nếu bị treo, có thể bạn đang làm điều gì đó sai khi tải tệp.

+0

Nó có thể bị treo do các ràng buộc tài nguyên ở cấp hệ điều hành hoặc tệp hệ thống. –

8

XmlDocument không khả thi trong trường hợp này vì nó sẽ cố gắng hút gigabyte đó vào bộ nhớ chính. Tôi ngạc nhiên khi bạn thấy XmlTextReader quá chậm. Bạn đã thử một cái gì đó như sau?

using (XmlTextReader rdr = new XmlTextReader("MyBigFile.txt")) 
{ 
    // use rdr to advance through the document. 
} 
1

Tôi không quen thuộc với chủ đề này, nhưng các lớp XmlReader phải hoạt động tốt cho vấn đề cụ thể của bạn. Họ, sau khi tất cả, tối ưu hóa cho chính xác điều này.

Các vấn đề liên quan