C# 带空格的XmlDocument文件名

C# 带空格的XmlDocument文件名,c#,xml,service,xmldocument,C#,Xml,Service,Xmldocument,我在windows7中有一个包含服务名称的XML文件,其中一个服务有空白,即“服务名称”,我加载该文件时出现异常: fileName = file; pathToFile = path; XmlDocument ServerList = new XmlDocument(); ServerList.Load(pathToFile + fileName); XML: <systems> <Groups> <Myervices>

我在windows7中有一个包含服务名称的XML文件,其中一个服务有空白,即“服务名称”,我加载该文件时出现异常:

fileName = file;
pathToFile = path;
XmlDocument ServerList = new XmlDocument();            
ServerList.Load(pathToFile + fileName);
XML:

<systems>
 <Groups>
  <Myervices>    
     <Dialogic/>
     <BoardServer/>
     <HmpElements/>
     <Service-1 Agent/>
   </Myervices>
 </Groups>
</systems>

文件名有空格,是否有方法接收它,因为我无法更改服务名

我得到的例外情况是:

“/”是意外标记。所需的令牌为“=”。第824行, 立场23。在System.Xml.XmlTextReaderImpl.Throw(异常e)处 System.Xml.XmlTextReaderImpl.Throw(字符串res,字符串[]args)位于 System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(字符串 expectedToken1,字符串expectedToken2)位于 System.Xml.XmlTextReaderImpl.ParseAttributes()位于 System.Xml.XmlTextReaderImpl.ParseElement()位于 System.Xml.XmlTextReaderImpl.ParseElementContent()位于 System.Xml.XmlTextReaderImpl.Read()位于 位于的System.Xml.XmlLoader.LoadNode(布尔skipOverWhitespace) System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)位于 System.Xml.xmloader.Load(XmlDocument文档,XmlReader阅读器,布尔值 在System.Xml.XmlDocument.Load(XmlReader)中保留空白) 加载(字符串文件名)位于 Stop\u Start\u systems.Functions..ctor(字符串路径,字符串文件)位于 c:\Stop\u Start\u systems\Functions.cs:32行 停止\启动\系统。默认值。页面\加载(对象发送方,事件参数e) c:\Stop\u Start\u systems\Default.aspx.cs:第31行 System.Collections.ListDictionaryInterna谢谢


问题与XML文件的名称或您发布的代码无关。这一切都与XML无效有关。XML元素名称不能包含空格,因此这是无效的:

<Service-1 Agent/>

相反,您应该为所有服务使用相同的元素名称,将服务名称放在属性中,例如

<Service Name="Service-1 Agent" />
<Service Name="Some other service" />


等等。我强烈建议您使用API自动创建XML文件,而不是手动创建,这样您就更有可能最终得到有效的XML。

那么您会遇到什么异常?我添加一行代码,听起来好像您构建了一个损坏的XML文件。我们不知道文件是什么样子,因此很难提出修复建议。换句话说,文件名中的空格与问题无关。只是您已经手工编辑了XML,以包含文件名,并且您已经破坏了它@石:不,档案不好。这是无效的XML。XML元素名称中不能有空格。就这么简单。我建议对所有服务使用相同的元素名称,并将服务名称作为属性值。这很有帮助-谢谢