我试图用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));
}