XmlReader Read() Exception



我试图用xmlreader读取xml文件,这是我的代码:

public XmlReader LoadXMLToReader(string inputXMLPathFile)
{
    byte[] xmlData = Encoding.UTF8.GetBytes(inputXMLPathFile);
    MemoryStream xmlStream = new MemoryStream(xmlData);
    xmlStream.Position = 0;
    XmlReader reader = XmlReader.Create(xmlStream);
    reader.Read();
    return reader;
}

该函数在reader.read()上给我一个错误"根级别的数据无效"。第1行位置1",我读到了BOM,那么我如何修复这个函数来防止该BOM呢?

<?xml version="1.0" encoding="UTF-8" ?>
<Columns>
  <Column>1</Column>
  <Column>2</Column>
  <Column>3</Column>
</Columns>

有人能帮帮我吗?

问题出在这行代码:

byte[] xmlData = Encoding.UTF8.GetBytes(inputXMLPathFile);

你将文件名传递给一个函数,该函数返回字符串的二进制表示形式——传递给该函数的实际字符串的二进制表示形式,而不是,不知怎么的,一个文件引用的路径碰巧作为字符串值传递进来。

有很多方法可以简化你的方法。其中之一是:

public XmlReader LoadXMLToReader(string inputXMLPathFile)
{
    return XmlReader.Create(File.Open(inputXMLPathFile, FileMode.Read));
}

相关内容

  • 没有找到相关文章

最新更新