【发布时间】:2011-03-15 07:17:30
【问题描述】:
只是一个简单的问题。
除了操作它们的方式之外,XMLDocuments 和 DataSets 基本上是一样的吗?我只是想知道速度问题。
我遇到了一些调用 dataSet.getXML() 然后遍历新的 XMLDocument 的代码。
我只是好奇性能差异是什么,哪个是最好用的!
谢谢,
亚当
【问题讨论】:
只是一个简单的问题。
除了操作它们的方式之外,XMLDocuments 和 DataSets 基本上是一样的吗?我只是想知道速度问题。
我遇到了一些调用 dataSet.getXML() 然后遍历新的 XMLDocument 的代码。
我只是好奇性能差异是什么,哪个是最好用的!
谢谢,
亚当
【问题讨论】:
非常不同。
DataSet 是相关表格记录的集合(重点关注数据库),包括更改跟踪。
XmlDocument 是任意数据的树形结构。您可以在两者之间进行转换。
对于“哪个是最好的”......你想做什么? 个人我很少(如果有的话)使用DataSet / DataTable,但有些人喜欢它们。我更喜欢对象 (class) 表示(可能通过反序列化),但在许多情况下 xml 处理都很好。
然而,将DataSet 写入 xml 然后查询 xml 似乎很奇怪。在那个场景中,我会直接访问原始数据。
【讨论】:
不,他们不是。 DataSet 不将其内部数据存储在 XML 中,而 XMLDocument 不使用表/行结构来存储 XML 元素。您可以在严格的限制内从一种转换为另一种,但仅此而已。最大的限制之一是 DataSet 要求数据适合严格的表/列格式,其中 XmlDocument 可以具有从一个 XmlElement 到下一个完全不同的结构。此外,XmlDocument 的层次结构通常不能很好地映射到 DataSet 的表格结构。
.NET 提供 XmlDataDocument 作为一种以表格方式处理 XML 数据的方式。尽管 XmlDataDocument 首先是 XmlDocument,但您必须记住。生成的 DataSet 只是查看底层 XML 数据的另一种有限的方式。
【讨论】:
根据表的大小,linq to xml 或 xquery 查询数据可能比查看表更快。我对此并不积极,这是您必须针对自己的数据进行测试的东西。
【讨论】: