首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用XmlDocument的“根元素缺失”

使用XmlDocument的“根元素缺失”
EN

Stack Overflow用户
提问于 2022-12-04 13:02:04
回答 1查看 42关注 0票数 0

我正在raspberry pi上运行一个C#应用程序,在该应用程序中,我在启动时读取一次xml文件,然后每次使用以下代码更改该文件:

代码语言:javascript
复制
using System.Xml;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(settingsFileName);

第一次(在启动时)它总是有效的,但是当文件更改时,我总是得到这个异常:

代码语言:javascript
复制
Unhandled exception. System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)

配置文件如下所示:

代码语言:javascript
复制
<config>
  <data1 seconds = "5000"></data1>
  <data2 check = "16:00"></data2>
  <data3 max = "50"></data3>
</config>  

当然,我只更改数据,而不是根元素"config“。

是什么导致了这一切?

编辑:

<?xml version="1.0"?>放在文件的顶部有一点改进,现在只有在我第二次更改文件时才会出现错误。

没有更改文件的代码,但是有检查文件最后保存时间的代码,如果与最初的保存时间不同,则再次读取xml文件。我使用winscp的默认编辑器对xml文件进行了实际更改(因为我使用SSH访问pi)。

dotnet --version 3.1.425

EN

回答 1

Stack Overflow用户

发布于 2022-12-04 13:49:57

你可以这样用

将文件内容加载到变量xml

并粘贴在代码下面。

代码语言:javascript
复制
               using (StringReader reader = new StringReader(xml))
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(reader);
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74675865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档