什么是更好的XPath或Linq2Xml

时间:2010-01-28 08:26:42

标签: c# xpath linq-to-xml

在xml中搜索的“最佳”方式是什么? Xpath或Linq2xml。

我问这个是因为我们需要在xml中进行大量搜索 我总是使用XPath(因为我一直在使用.NET 1.1)。但是随着Linq的推出,你可以轻松使用Linq2Sql。

此致 微米。

3 个答案:

答案 0 :(得分:7)

我也广泛使用xsl

他们有非常不同的用途imo

xpath非常适合处理xml文档,而linq2xml非常适合将它们映射到对象集合中。

换句话说,我经常会有涉及两者的应用程序。

例如,将csv解析为给定的xml结构几乎可以用于xslt和xpath,如果你有一个包含可选元素的xml文档,linq2XMl会给你带来问题。所以我倾向于使用xpath来真正锁定xml格式,以便它是显式的并保持我的linq2xml映射非常简单。

结果是更少的错误和更快的开发。

不知道为什么这个人正在谈论linq2xsd ......这是一个已停产的项目,文档非常少。远离它。

Xdocument是一个实际上可以使用的对象... xmldocument是一个非常fiddly imo。显然它取决于手头的任务,但缺少xpath 2.0使我倾向于将它用作数据清理器,然后让linq2XMl做真正的工作。

就搜索而言,你可以做linq2xml在xpath中所做的一切,从语法上来说,我更喜欢使用linq2sql并使用强类型集合而不是使用xpath。它更容易回到以后适应。此外,您不必担心xpath实现之间的语法差异,尤其是正则表达式实现

答案 1 :(得分:0)

要么。这取决于。

取决于你(和你的团队)的知识(即XPath不会有效,没有人知道XPath,但都知道LINQ to XML)。此外,某些操作可以更容易。

答案 2 :(得分:0)

您需要首先定义标准,以判断什么是最好的。您需要决定是否要将XPath 1.0或2.0与LINQ to XML进行比较。 Microsoft不支持XPath 2.0,但存在第三方解决方案,如Saxon 9或类似XQSharp

相关问题