我试图用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>有人能帮我吗?
发布于 2013-03-07 22:55:57
问题在于这一行代码:
byte[] xmlData = Encoding.UTF8.GetBytes(inputXMLPathFile);您将文件名传递给一个函数,该函数返回字符串的二进制表示形式--传递给该函数的实际字符串,而不是神奇地引用到作为字符串值传入的路径的文件。
有许多选项可以简化您的方法。其中之一是:
public XmlReader LoadXMLToReader(string inputXMLPathFile)
{
return XmlReader.Create(File.Open(inputXMLPathFile, FileMode.Read));
}https://stackoverflow.com/questions/15280269
复制相似问题