使用XDocument.Load(xmlreader)方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用XDocument.Load(xmlreader)方法?相关的知识,希望对你有一定的参考价值。

我通常听说使用XDocumentLoadParse方法将整个文件加载到内存中,这就是为什么不建议使用此方法解析大文件...但是如果我使用以下重载来读取xml文件怎么办?

XDocument xml = XDocument.Load(XmlReader.Create(@"C:OPfile.xml", settings),LoadOptions.None);

它是否仍然将整个文件加载到内存中,如果是这样,这个过载有什么用呢?

答案

是的,仍然将整个文件的内容加载到内存中表示中。它没有XElement.Load(XmlReader)方法有用,它可以真正有用的是一次只将文档的一部分加载到内存中。

我认为XDocument.Load(XmlReader)方法主要用于保持一致性 - 但我可以看到它在其他API提供XmlReader而不是原始数据的情况下很有用。例如,您可以使用一些数据结构,通过允许您从中创建XmlReader来提供“虚假”XML访问。这样,它永远不需要序列化为真正的XML,然后需要再次解析。

另一个用例是你想要使用在XmlReadSettings中不可用的LoadOptions的某些方面,例如忽略注释或使用特定的名称表。

但不,如果您担心文档不适合内存,则不应使用XDocument.Load(XmlReader)

以上是关于使用XDocument.Load(xmlreader)方法?的主要内容,如果未能解决你的问题,请参考以下文章

XElement.Load 和 XDocument.Load 有啥区别?

XDocument.Load 方法在 XDocument 中不存在

使用 Xdocument 进行简单的 Xml 解析

从字符串填充 XDocument

C# XDocument 如何使用 linq 过滤元素

循环遍历 XDocument 的后代 - C#