【发布时间】:2013-10-21 06:46:28
【问题描述】:
在解析相当大的 XML 文件(其中的大小或元素数量)方面,哪个是最好的 XmlDocument 或 XmlReader(在性能上)
【问题讨论】:
-
这不是问的好方法。请阅读FAQ和How to Ask
-
因为他们的工作不同,所以比较他们的表现是没有意义的。
标签: c# xml vb.net performance parsing
在解析相当大的 XML 文件(其中的大小或元素数量)方面,哪个是最好的 XmlDocument 或 XmlReader(在性能上)
【问题讨论】:
标签: c# xml vb.net performance parsing
问题不应该是哪个更快,但哪个对您的情况有利。
XmlDocument 将整个文档加载到内存中,并允许您对其进行修改和查询内容。毕竟,您可以将修改后的文档保存回文件。
XmlReader 提供对 XML 文档内容的只读和只转发访问,一次只有一个元素。
您必须选择适合您的情况的描述。
您还应该知道,在 .NET 中还有另一种处理 XML 文档的方法,称为 LINQ to XML。
【讨论】:
另一个选项可能是将 XML 加载到数据集中:
Public Function GetXMLDataset() As DataSet
Try
Dim ds As New DataSet
Dim xd As New XmlDocument
xd.LoadXml(txtXML.Text)
ds.ReadXml(New XmlNodeReader(xd), XmlReadMode.InferSchema)
Return ds
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
End Try
End Function
在这个 sn-p 中,XML 已经读入文本框,但您可以开发其他方法来获取 XML。
您可能想要定义“相当大”,因为读取整个文件可能不切实际。
【讨论】:
DataSet 并非在所有情况下都有效。实际上,它只适用于 XML 匹配关系数据模型的情况。
XmlReader 肯定适用于所有情况。