C# 读取保存xml文件
直接读取xml文件中的内容
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(result); XmlNode root = xmlDoc.SelectSingleNode("//response"); if (root != null) { string error = (root.SelectSingleNode("error")).InnerText; }
代码来源:https://www.cnblogs.com/kongxiaoshuang/p/6512328.html
这种方法存在一个缺点就是当xml文件中存在<!DOCTYPE>,eg:<!DOCTYPE nvidia_smi_log SYSTEM "nvsmi_device_v10.dtd"> 而你有缺少了dtd文件会导致读取xml文件报错
<!DOCTYPE>详细:http://www.w3school.com.cn/tags/tag_doctype.asp
因此需要取消对该标签的读取,这是读取nvidia-smi -p -x输出出来的显卡的显存信息
private static void Getxml(ref string total, ref string free) { try { XmlDocument xmldoc = new XmlDocument(); XmlReaderSettings setting = new XmlReaderSettings(); setting.DtdProcessing = DtdProcessing.Ignore; //忽视dtd XmlReader reader = XmlReader.Create(savepath, setting); xmldoc.Load(reader); XmlNodeList topM = xmldoc.SelectNodes("//fb_memory_usage"); foreach (XmlElement element in topM) { total = element.GetElementsByTagName("total")[0].InnerText.Replace(" MiB",""); free = element.GetElementsByTagName("free")[0].InnerText.Replace(" MiB", ""); } reader.Close(); } catch (Exception) { total = "0.0"; free = "0.0"; } finally { if (File.Exists(savepath)) { File.Delete(savepath); } } }
保存xml
FileStream writeStream = new FileStream("E:\\aaaa.txt", FileMode.Create); XmlSerializer serializer = new XmlSerializer(data.GetType()); //xml对象 serializer.Serialize(writeStream, data); writeStream.Close();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构