C# XmlDocument与XmlReader

C# XmlDocument与XmlReader,c#,xml,vb.net,performance,parsing,C#,Xml,Vb.net,Performance,Parsing,哪一个是解析相当大的XML文件(大小或元素数量)的最佳XmlDocument或XmlReader(在性能上)问题不应该是哪一个更快,而应该是哪一个更适合您的情况 XmlDocument将整个文档加载到内存中,并允许您修改它和查询内容。毕竟,您可以将修改后的文档保存回文件 XmlReader提供对XML文档内容的只读和转发访问,每次一个元素 您必须选择适合您案例的描述 您还应该知道,在.NET中还有另一种处理XML文档的方法,称为LINQtoXML 将XML加载到数据集中的另一个选项: Publi

哪一个是解析相当大的XML文件(大小或元素数量)的最佳XmlDocument或XmlReader(在性能上)

问题不应该是哪一个更快,而应该是哪一个更适合您的情况

XmlDocument将整个文档加载到内存中,并允许您修改它和查询内容。毕竟,您可以将修改后的文档保存回文件

XmlReader提供对XML文档内容的只读和转发访问,每次一个元素

您必须选择适合您案例的描述


您还应该知道,在.NET中还有另一种处理XML文档的方法,称为LINQtoXML

将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
在这个片段中,XML已经被读入文本框,但是您可以开发其他方法来获取XML


您可能需要定义“相当大”,因为读取整个文件可能不实用。

这不是一个好的提问方式。请阅读,因为它们做不同的工作,所以比较它们的性能是没有意义的。因此,如果我想编辑XML文件或向XML文件添加更多元素,我必须将所有元素都加载到内存中?我可以使用XML to LINQ编辑XML文件吗?可以。我真的建议您这样做,因为它比旧的XmlDocument更易于使用。-1:
DataSet
并非在所有情况下都有效。事实上,它只在XML与关系数据模型匹配的情况下有效。没有任何东西在所有情况下都有效,尤其是在“XML”数据中——您没有很好地定义基本条件。日期集在某些情况下肯定会起作用。
XmlReader
肯定会在所有情况下起作用。