2009-11-04 34 views

Trả lời

32

Sự khác biệt là loại XElement đại diện cho đoạn XML trong khi loại XDocument đại diện cho toàn bộ tài liệu XML có tất cả siêu dữ liệu được liên kết.

Tuy nhiên, đối với hầu hết các trường hợp đơn giản, bạn có thể sử dụng chúng thay thế cho nhau.

Điều quan trọng là phải hiểu sự khác biệt tinh tế trong truy vấn giữa hai loại này và cho biết thêm thông tin trên mà tôi muốn giới thiệu bạn vui lòng đọc Querying an XDocument vs. Querying an XElement:

Khi bạn tải một tài liệu qua XDocument.Load, bạn sẽ thông báo rằng bạn phải viết truy vấn hơi khác so với khi bạn tải qua XElement.Load.

+0

vì vậy hiệu suất khôn ngoan chúng đều giống nhau – Ayyash

+0

Ngoài ra, XDocument được đề xuất nếu bạn định gửi XML được tạo qua web tới một số dịch vụ web. Nhưng bạn đã yêu cầu '.Load', vì vậy đây không phải là trường hợp của bạn. –

9

Không có nhiều trường hợp yêu cầu bạn tạo XDocument. Thay vào đó, bạn thường có thể tạo các cây XML của mình với nút gốc XElement. Trừ khi bạn có một yêu cầu cụ thể để tạo ra một tài liệu (ví dụ, bởi vì bạn phải tạo chế biến hướng dẫn và bình luận ở cấp cao nhất , hoặc bạn phải hỗ trợ tài liệu loại), nó thường là thuận tiện hơn để sử dụng XElement làm nút gốc của bạn.

Trực tiếp từ Valid Content of XElement and XDocument Objects. Theo như các phương pháp tải ... cả hai đều tải nội dung vào các đối tượng tương ứng của họ.

+0

Tôi cần tải/sửa đổi/lưu một số biểu mẫu InfoPath và chúng sử dụng rộng rãi các hướng dẫn xử lý. Sử dụng XElement đã cho kết quả khó hiểu cho đến khi tôi tìm thấy bài đăng này và chuyển sang XDocument. Sooo ... cảm ơn! – Jasper

1

Có sự khác biệt trong khi tải bình luận của nó sẽ không được nạp trong trường hợp XElement.Load() Trong khi Các XDocument.Load() cũng sẽ nhận được Bình luận

Do đó khi làm việc với Xlinq chúng ta nên đi với XDocument

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