【发布时间】:2023-03-05 08:06:01
【问题描述】:
我正在尝试使用 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>
有人可以帮我吗?
【问题讨论】:
-
您尝试加载的 xml 文件的结构是什么?请问您也可以更新您的问题吗?
-
你为什么要这样做?试试
XmlReader.Create(new StreamReader(inputXMLPathFile))。为什么你应该做第一个Read?让你的来电者这样做。 -
这不能解决我的异常...
-
inputXMLPathFile中到底是什么?它是文件的路径,还是包含 XML? -
如果
inputXMLPathFile包含 XML 文件的路径,这就是导致异常的原因。我不认为Encoding.UTF8.GetBytes()做你认为它做的事。你现在的方式是,你试图将文件路径解析为 XML,而不是文件的实际 contents。