簡體   English   中英

XmlReader Read()異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM