带空格的XmlDocument文件名

时间:2014-04-01 07:18:18

标签: c# xml service xmldocument

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

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>

filenName有空格,有没有办法接收它,因为我无法更改服务名称。

我得到的例外:

  

&#39; /&#39;是一个意外的令牌。预期的令牌是&#39; =&#39;。 824行,   位于23.的System.Xml.XmlTextReaderImpl.Throw(例外e)处   System.Xml.XmlTextReaderImpl.Throw(String res,String [] args)at   System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(字符串   expectedToken1,String expectedToken2)at   System.Xml.XmlTextReaderImpl.ParseAttributes()at   System.Xml.XmlTextReaderImpl.ParseElement()at   System.Xml.XmlTextReaderImpl.ParseElementContent()at   System.Xml.XmlTextReaderImpl.Read()at   System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)at   System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)at at   System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean   保存在System.Xml.XmlDocument.Load(XmlReader阅读器)   在System.Xml.XmlDocument.Load(String filename)at   Stop_Start_systems.Functions..ctor(String path,String file)in   c:\ Stop_Start_systems \ Functions.cs:第32行at   Stop_Start_systems.Default.Page_Load(Object sender,EventArgs e)in   c:\ Stop_Start_systems \ Default.aspx.cs:第31行   System.Collections.ListDictionaryInterna谢谢

1 个答案:

答案 0 :(得分:1)

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

<Service-1 Agent/>

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

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

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