我想加载一个带有绝对路径的XML文件。我试过这样做:
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Users\Accueil\Desktop\TestEDI\ARTest.xml");
但我收到错误:
字符'<&#;;十六进制值0x3c,不能包含在名称中。
答案 0 :(得分:1)
如果您使用<
而不是xml元素的开放标记,则会出现此错误。
例如,<my<Element>
可能会出现此错误,因为解析器在期望<
的标记名称的一部分或结束时找到第二个myElement
标记>
。
另一个例子是您希望在某些xml文本的正文中使用<
:
<inequality>
这是一个不等式的例子:x&lt; 5 </inequality>
避免这种情况的方法是确保所有非开启标记使用&#39;&lt;&#39;编码为proper XML entities,在本例中为<
答案 1 :(得分:1)
正如Andy所说,看起来好像你在xml文件中使用受限制的字符......
Taken from here ...
这会显示错误消息:
<message>if salary < 1000 then</message>
这很好:
<message>if salary < 1000 then</message>
XML中有5个预定义的实体引用:
< < less than
> > greater than
& & ampersand
' ' apostrophe
" " 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)