我是一名C#程序员,所以我无法利用VB中的酷
XML语法.
Dim itemList1 = From item In RSS.<RSS>.<channel>.<item> _ Where item.<description>.Value.Contains("LINQ") Or _ item.<title>.Value.Contains("LINQ")
使用C#,我发现XPath比使用LINQ to XML执行多嵌套选择更容易思考,更容易编码,更容易理解.看看这个语法,它看起来像希腊语发誓:
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 };
所有的转换,重的语法,NullPointerExceptions的可能性. XPath不会发生这种情况.
我一般都喜欢LINQ,而且我在对象集合和数据库上使用它,但是我第一次查询XML时又回到了XPath.
只有我吗?
我错过了什么吗?
编辑:有人投票决定关闭这个“不是一个真正的问题”.但这是一个真正的问题,清楚地说明.问题是:我误解了吗?
LINQ to XML的东西?
只要完成工作,就可以使用您感觉最舒适的东西.我使用这两种方法取决于我需要对XML做什么.听起来对你来说,你已经很好地理解了LINQ的优点以及XPath的优点.