0

我正在尝试使用 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>

有人能帮我吗?

4

1 回答 1

0

问题出在这行代码:

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

您正在将文件名传递给一个函数,该函数返回一个字符串的二进制表示 - 传递给该函数的实际字符串,而不是某种神奇的文件,该文件引用了作为字符串值偶然传入的路径。

有许多选项可以简化您的方法。其中之一是:

public XmlReader LoadXMLToReader(string inputXMLPathFile)
{
    return XmlReader.Create(File.Open(inputXMLPathFile, FileMode.Read));
}
于 2013-03-07T22:55:57.043 回答