通过XmlDocument

时间:2016-07-15 16:22:26

标签: c# xml

我在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>

有没有解释为什么会发生这种情况?

2 个答案:

答案 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()本身不起作用,这也可以工作。

++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++

亲爱的主持人,他以同样的方式回答了另一个问题,因此删除了我的答案:

不仅删除人们的答案-如果答案相同,那是因为它是相同的问题。关闭问题,不要删除答案。