使用XmlDocument加载xml文件

时间:2015-04-07 14:20:22

标签: c# xml

我想加载一个带有绝对路径的XML文件。我试过这样做:

XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Users\Accueil\Desktop\TestEDI\ARTest.xml");

但我收到错误:

  

字符'<&#;;十六进制值0x3c,不能包含在名称中。

3 个答案:

答案 0 :(得分:1)

如果您使用<而不是xml元素的开放标记,则会出现此错误。

  1. 例如,<my<Element>可能会出现此错误,因为解析器在期望<的标记名称的一部分或结束时找到第二个myElement标记>

  2. 另一个例子是您希望在某些xml文本的正文中使用<

    <inequality>这是一个不等式的例子:x&lt; 5 </inequality>

  3. 避免这种情况的方法是确保所有非开启标记使用&#39;&lt;&#39;编码为proper XML entities,在本例中为&lt;

答案 1 :(得分:1)

正如Andy所说,看起来好像你在xml文件中使用受限制的字符......

Taken from here ...

这会显示错误消息:

<message>if salary < 1000 then</message>

这很好:

<message>if salary &lt; 1000 then</message>

XML中有5个预定义的实体引用:

&lt;    <   less than
&gt;    >   greater than
&amp;   &   ampersand 
&apos;  '   apostrophe
&quot;  "   quotation mark

注意:只有字符&#34;&lt;&#34;和&#34;&amp;&#34;在XML中严格违法。大于特征是合法的,但替换它是一个好习惯。

请更换这些非法字符或考虑使用CData

答案 2 :(得分:0)

试试这个:

XmlReader xmlFile; 
FileStream fs = new FileStream("/*YOUR XML FILE PATH*/.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // Creates a FileStream that will open a specific .xml file you want, read it and then write its data into your program
xmlFile = XmlReader.Create(fs, new XmlReaderSettings()); // Enables your program to use this newly "created" .xml file

DataSet ds = new DataSet(); 
ds.ReadXml(xmlFile); // Uses your .xml file as a DataSet, which can then be used as a data source for something you need (e.g.: a DataGridView)