Tôi là lập trình viên C#, vì vậy tôi không tận dụng được cú pháp XML thú vị trong VB.Chỉ là tôi? Tôi thấy LINQ to XML là loại cồng kềnh, so với XPath
Dim itemList1 = From item In rss.<rss>.<channel>.<item> _
Where item.<description>.Value.Contains("LINQ") Or _
item.<title>.Value.Contains("LINQ")
Sử dụng C#, tôi tìm XPath để được dễ dàng hơn để suy nghĩ về, dễ dàng hơn để mã, dễ hiểu, vì thực hiện một đa lồng chọn sử dụng LINQ to XML. Nhìn vào cú pháp này, trông giống như tiếng Hy Lạp chửi thề:
var waypoints = from waypoint in gpxDoc.Descendants(gpx + "wpt")
select new
{
Latitude = waypoint.Attribute("lat").Value,
Longitude = waypoint.Attribute("lon").Value,
Elevation = waypoint.Element(gpx + "ele") != null ?
waypoint.Element(gpx + "ele").Value : null,
Name = waypoint.Element(gpx + "name") != null ?
waypoint.Element(gpx + "name").Value : null,
Dt = waypoint.Element(gpx + "cmt") != null ?
waypoint.Element(gpx + "cmt").Value : null
};
Tất cả cú pháp, cú pháp nặng, khả năng cho NullPointerExceptions. Không có điều gì xảy ra với XPath.
Tôi thích LINQ nói chung và tôi sử dụng nó trên bộ sưu tập đối tượng và cơ sở dữ liệu, nhưng vòng đầu tiên của tôi với truy vấn XML đã dẫn tôi quay trở lại XPath.
Chỉ là tôi?
Tôi có thiếu gì đó không?
EDIT: một người nào đó đã bỏ phiếu để đóng này là "không phải là một câu hỏi thực sự". Nhưng nó là một câu hỏi thực sự, đã nêu rõ. Câu hỏi là: Tôi có hiểu nhầm điều gì đó với LINQ to XML không?
Yup, đó chỉ là bạn.: p –
Tôi đồng ý, tôi yêu L2O, L2S, nhưng khi giao dịch với xml tôi chỉ cần quay trở lại sử dụng xpath cùng với xmldocument/xmlnode/xmlelement vv. Linq-to-XML có thể dễ dàng hơn để bắt đầu nhưng nếu bạn có xpath trong ngón tay của bạn sau đó nó sẽ không đánh bại xpath ... – KristoferA
Không, nó không chỉ là bạn. Linq-to-XML có vẻ giống như một cách tiếp cận "thông minh hơn", nhưng cũng giống như bạn, tôi vẫn thích XPath hơn. Nếu bạn biết XPath và có thể tận dụng nó - bằng mọi cách, hãy làm như vậy! :-) Bạn không đơn độc :-) –