LinqToXml还是Xml?

5
我正在尝试处理XML,但使用XML命名空间类让我感到非常疲惫。我发现它真的很难。因此,我尝试使用LinqtoXml类来完成相同的事情,并且我发现与XML类相比,LinqtoXml有很多可能性。所以我真的很困惑该使用哪个。
您何时以及为什么更喜欢使用XML类而不是LinqtoXml类?
编辑:
在LinqToXml中无法完成哪些在XML类中可以完成的事情?

L2X是访问XML的更简便方式。我不知道有任何区别,但如果有的话,我很想了解。我一直在使用Linq 2 SQL,它极大地减少了构建DAL的工作量,而且我也不知道有什么不同。 - Chase Florell
在使用L2X时,您从未需要Xml类,这表明L2X可以胜任Xml的许多任务。 - Freshblood
那不是真的(请看我的回答) - Rex M
你使用了哪些“Xml”类出现了问题?这方面有很多类。 - John Saunders
2个回答

8

自从.NET Framework的第一个版本推出以来,就提供了一般用于操作和处理XML数据的方法。Linq在.NET Framework 3.5中可用。如果您的目标是较旧版本的.NET Framework,则使用普通的Xml类之一是合适的原因之一。

Linq to Xml也有不同的方法。它更多地涉及查询XML数据,而不是读取它。因此,在某些情况下,Linq to Xml将是最容易实现任务的方法,但并非在每个情况下都是如此。对于不熟练的开发人员来说,使用Linq可能会导致代码性能问题,这可能是一个坏事。在我看来,与没有使用Linq相比,使用Linq更容易产生巨大的性能问题。


3

在LINQ to XML领域中专门工作非常适合查询(LINQ中的“Q”)和将原始XML数据投影到结构中,但在某些情况下操作XML直接是笨重的,而在其他情况下则是不可能的。

有人可以认为在许多情况下这仍然是一件好事,因为不变性确实减少了某些类型的错误的机会,但它肯定会有成本-不能完全与每种情况完全对齐,并且有时会影响性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接