2010-01-28 38 views
5

Cách tốt nhất để tìm kiếm trong xml là gì?
Xpath hoặc Linq2xml.XPath hoặc Linq2Xml tốt hơn

Tôi yêu cầu điều này bởi vì chúng tôi cần thực hiện rất nhiều tìm kiếm trong xml.
Tôi luôn sử dụng XPath (vì tôi đã sử dụng nó từ .NET 1.1). Nhưng với sự ra đời của LINQ bạn có thể dễ dàng sử dụng Linq2Sql.

Kính trọng, M.

+1

Bài viết này là tốt .. http://www.codewrecks.com/blog/index.php/2008/09/05/mix- linq2xml-and-xpath-take-the-best-from-cả hai/ –

Trả lời

7

tôi sử dụng rộng rãi cả cũng XSL

họ có công dụng rất khác nhau imo

xpath là rất tốt cho thao tác các tài liệu xml wheras linq2xml là rất tốt cho việc lập bản đồ chúng vào bộ sưu tập đối tượng.

Nói cách khác, tôi thường xuyên có các ứng dụng liên quan đến cả hai.

ví dụ phân tích cú pháp csv thành cấu trúc xml nhất định gần như được chọn cho xslt và xpath wheras linq2XMl sẽ cho bạn các sự cố nếu bạn có tài liệu xml có phần tử tùy chọn. vì vậy tôi có xu hướng sử dụng xpath để thực sự khóa xuống định dạng xml để nó là rõ ràng và để giữ bản đồ linq2xml của tôi rất rất đơn giản.

Kết quả là ít lỗi hơn và phát triển nhanh hơn nhiều.

không biết tại sao chàng trai lại nói về linq2xsd ... một dự án bị gián đoạn có tài liệu rất ít. tránh xa nó.

Xdocument là một đối tượng thực sự thú vị khi làm việc với ... xmldocument là một đối tượng không thích hợp. Rõ ràng nó phụ thuộc vào nhiệm vụ trong tầm tay, nhưng thiếu xpath 2.0 khiến tôi có xu hướng sử dụng nó như một chất tẩy rửa dữ liệu và sau đó để linq2XMl thực hiện công việc thực sự.

theo tìm kiếm, bạn có thể thực hiện mọi thứ mà linq2xml thực hiện trong xpath, điều tôi đang sử dụng linq2sql và chơi với bộ sưu tập mạnh mẽ hơn là xáo trộn với xpath. Nó dễ dàng hơn nhiều để trở lại vào một ngày sau đó và thích ứng. Ngoài ra bạn không phải lo lắng về sự khác biệt cú pháp giữa việc triển khai xpath và đặc biệt là với việc triển khai regex

+0

đây là một lời giải thích tuyệt vời, thx mate – user29964

+0

np vui mừng để giúp đỡ –

0

Hoặc. Nó phụ thuộc.

Tùy thuộc vào kiến ​​thức của bạn (và nhóm của bạn) (nghĩa là XPath sẽ không hiệu quả là không ai biết XPath, nhưng tất cả đều biết LINQ to XML). Ngoài ra một số hoạt động có thể dễ dàng hơn trong một hoặc khác.

0

Bạn sẽ cần phải xác định tiêu chí trước để đánh giá điều tốt nhất. Và bạn cần phải quyết định xem bạn có muốn so sánh XPath 1.0 hoặc 2.0 với LINQ to XML hay không. Microsoft không hỗ trợ XPath 2.0 nhưng các giải pháp của bên thứ ba tồn tại, chẳng hạn như Saxon 9 hoặc như XQSharp.

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