我正在尝试从XML文件读取数据。数据在文档的开头带有字符(当我从FTP站点获取文件时,文档以这种方式出现),因此我将其读取为字符串,以便可以用代码填充多余的字符。现在,当我在notepad ++或word pad中打开文件时,它打开得很好,当我想从程序中执行该文件时就会出现问题。
我一直尝试同时使用streamreader和File.ReadAllText()方法,但似乎没有任何效果。当我从代码中运行它时,我得到的只是几个特殊字符
OpenFileDialog OpenDialog = new OpenFileDialog();
OpenDialog.ShowDialog();
var FileName = OpenDialog.FileName;
var FileString = File.ReadAllText(FileName);
我还试图从文件中读取时更改编码类型,但仍然无法正常工作
答案 0 :(得分:1)
这不是XML文件。正如其他人解释的那样,这是一个二进制文件,在某些时候它包含XML。
尽管跳过二进制部分,您仍然可以读取XML内容。您可以使用FileStream和StreamReader来打开它,然后阅读直到到达XML文本的开头。
var tagAsInt=(int)'<';
using(var stream=File.OpenRead(pathToFile))
using(var sr=new StreamReader(stream))
{
while (sr.Peek() !=tagAsInt)
{
sr.Read();
}
var xml=new XmlDocument();
xml.Load(sr);
}
Peek()
检查流中的下一个字符而不消耗它。
答案 1 :(得分:0)
您必须从文件的开头删除那些流氓字符。试试这个:
DiffMaxChange