我将读取类似以下示例的大型XML文件的根节点的所有一级子节点:
<root>
<record n="1"><a/><b/><c/></record>
<record n="2"><a/><b/><c/></record>
<record n="3"><a/><b/><c/></record>
</root>
我的代码看起来像这样:
var xml = XDocument.Load(filename);
var firstNode = xml?.Root?.Descendants()?.FirstOrDefault();
var elements = firstNode?.Elements();
我只需要获取根节点的第一个子节点和所有一级子节点。这段代码运行良好,但问题是:这样读取安全吗?我想它不会将所有数据加载到内存中 - 只会加载xml文件的结构?
在我看来,在调试时内存并没有增加。只有当我实际尝试查看xml
变量中的内容时,它才会爆炸。
var xml = XDocument.Load(filename);
这行代码之后,使用的内存并没有立即增加吗?只有当我尝试查看该变量中的内容时,内存才会增加。 - Giorgi Nakeuri