[英]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()
上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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.