我在c#中加载xml文档时收到有关格式不正确的错误。使用以下代码时,
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(fileName);
之后我收到错误:
根级别的数据无效。第1行,第1位。
但是,如果我将第一个匹配项更改为以下内容,则一切都按预期工作,并且xmlDoc的类型实际上是XmlDocument:
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(fileName);
我的xml文件的片段如下:
<?xml version="1.0" encoding="utf-8"?>
<AutomatedTests type="asdf">
<TestGroup>
</TestGroup>
</AutomatedTests>
有没有解释为什么会发生这种情况?
答案 0 :(得分:2)
假设文件名是路径,请尝试以下代码。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlDocument.Load从流,TextReader,路径/ URL或XmlReader加载XML,XmlDocument.LoadXml加载字符串中包含的XML。
答案 1 :(得分:-1)
如果您真的想以字符串形式读取它,而又不想像另一个建议那样做XMLDocument.Load()
,则可以执行XMLDocument.LoadXml()
,但它应该以字符串形式进行,首先:< / p>
string myFilePath = @"C:\MappingFiles\InputFile.xml";
string allText = File.ReadAllText(myFilePath);
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.LoadXml(allText);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
我发现,即使文件上的.Load()
本身不起作用,这也可以工作。
++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++
亲爱的主持人,他以同样的方式回答了另一个问题,因此删除了我的答案:
不仅删除人们的答案-如果答案相同,那是因为它是相同的问题。关闭问题,不要删除答案。