gpt4 book ai didi

c# - XML 尽可能高效地查找特定元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:04 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我必须在其中读取特定的 xml 节点(“进度”节点,来自几个大的(3meg'ish)文件。

我正在通过 TextReader 和 XDocument 执行此操作,如下所示

TextReader reader = null;
reader = new StreamReader(Filename);
XDocument objDoc = XDocument.Load(reader);

var progressElement = objDoc.Root.Element("Progress");

var lastAccessTime = progressElement.Element("LastTimeAccessed").Value;
var user = progressElement.Element(("LastUserAccessed").Value;
var lastOpCode = progressElement.Element("LastOpCodeCompleted").Value;
var step = progressElement.Element("StepsCompleted").Value;

我相信,XDocument 会在执行任何其他操作之前将整个文件加载到内存中。但是,我不需要那个!我知道该节点将成为文件中的第一个节点。

是否有任何类型的“搜索”xml 解析器不首先缓存整个文件?

为上述属性解析 10 个文件大约需要 15 秒(这里的无线网络很糟糕)。

最佳答案

如果您只想要速度,XmlReader 是您的最佳选择。它一次读取一个节点,从头开始。最大的限制是您不能向后返回或使用对 XML 文档的任何随机访问。

关于c# - XML 尽可能高效地查找特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149586/

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