我通常听说使用XDocument's Load或Parse方法将整个文件加载到内存中,这就是为什么不建议使用此方法解析大文件...但是如果我使用以下重载来读取xml文件怎么办?
XDocument xml = XDocument.Load(XmlReader.Create(@"C:\OP\file.xml", settings),LoadOptions.None);
Run Code Online (Sandbox Code Playgroud)
它是否仍然将整个文件加载到内存中,如果是这样,这个过载有什么用呢?
是的,仍然将整个文件的内容加载到内存中表示中.它没有比将一部分文档一次加载到内存中真正有用的XElement.Load(XmlReader)方法有用.
我认为该XDocument.Load(XmlReader)方法主要用于保持一致性 - 但我可以看到它在其他API提供XmlReader而不是原始数据的情况下很有用.例如,您可以使用一些数据结构,通过允许您从中创建"伪"XML访问XmlReader.这样,它永远不需要序列化为真正的XML,然后需要再次解析.
另一个用例是您希望使用某些方面XmlReadSettings无法使用的用例LoadOptions,例如忽略注释或使用特定的名称表.
但不,XDocument.Load(XmlReader)如果您担心文档不适合内存,则不应使用.
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |