gpt4 book ai didi

c# - XDocument.Load 是否将所有数据加载到内存中?

转载 作者:数据小太阳 更新时间:2023-10-29 03:00:37 26 4
gpt4 key购买 nike

我必须读取大型 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 变量中的内容时,它才会爆炸。

最佳答案

不,XDocument 将整个文档加载到内存中。这样做是否“安全”取决于您需要能够处理的文档大小。

如果您需要处理无法放入内存的 XML 文件,您会想要使用 XmlReader,不幸的是,它很难使用。

关于c# - XDocument.Load 是否将所有数据加载到内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42732728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com