【问题标题】:XMLDocument vs DataSet? Are They The Same Thing?XMLDocument 与数据集?它们是一样的吗?
【发布时间】:2011-03-15 07:17:30
【问题描述】:

只是一个简单的问题。

除了操作它们的方式之外,XMLDocuments 和 DataSets 基本上是一样的吗?我只是想知道速度问题。

我遇到了一些调用 dataSet.getXML() 然后遍历新的 XMLDocument 的代码。

我只是好奇性能差异是什么,哪个是最好用的!

谢谢,

亚当

【问题讨论】:

    标签: c# xml dataset


    【解决方案1】:

    非常不同。

    DataSet 是相关表格记录的集合(重点关注数据库),包括更改跟踪。

    XmlDocument 是任意数据的树形结构。您可以在两者之间进行转换。

    对于“哪个是最好的”......你想做什么? 个人我很少(如果有的话)使用DataSet / DataTable,但有些人喜欢它们。我更喜欢对象 (class) 表示(可能通过反序列化),但在许多情况下 xml 处理都很好。

    然而,将DataSet 写入 xml 然后查询 xml 似乎很奇怪。在那个场景中,我会直接访问原始数据。

    【讨论】:

    • 我正在尝试遍历 DataSet 并希望使其与其余代码保持一致。我从第三方 DLL 返回了一个 DataSet,只是对性能差异感到好奇
    • @Adam - “性能差异”将取决于您的使用情况。您可能想要进行概要分析,但首先:它是否有效以及它是否足够快。如果是这样......也许就这样吧?
    • 我只是做了一些小测试,我认为你是对的,最好的选择是保留它。我有一个格式良好的数据集,可以用很少的代码行进行遍历,而无需转换为 XMLDocument 和导航。谢谢。
    【解决方案2】:

    不,他们不是。 DataSet 不将其内部数据存储在 XML 中,而 XMLDocument 不使用表/行结构来存储 XML 元素。您可以在严格的限制内从一种转换为另一种,但仅此而已。最大的限制之一是 DataSet 要求数据适合严格的表/列格式,其中 XmlDocument 可以具有从一个 XmlElement 到下一个完全不同的结构。此外,XmlDocument 的层次结构通常不能很好地映射到 DataSet 的表格结构。

    .NET 提供 XmlDataDocument 作为一种以表格方式处理 XML 数据的方式。尽管 XmlDataDocument 首先是 XmlDocument,但您必须记住。生成的 DataSet 只是查看底层 XML 数据的另一种有限的方式。

    【讨论】:

      【解决方案3】:

      根据表的大小,linq to xml 或 xquery 查询数据可能比查看表更快。我对此并不积极,这是您必须针对自己的数据进行测试的东西。

      【讨论】:

      • 我很想以某种形式或形式使用 LINQ,但该项目是 .NET 2.0 并且我绑定到我拥有的当前程序集!不过感谢您的回复,不过我是 LINQ 的忠实粉丝 :)
      猜你喜欢
      • 2010-12-17
      • 2021-02-16
      • 2011-08-07
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多