C# 读入/获取XML的编码类型

C# 读入/获取XML的编码类型,c#,xml,encoding,deserialization,streamreader,C#,Xml,Encoding,Deserialization,Streamreader,是否可以单独读取XML文件的第一行?我必须得到使用哪种编码的信息。我的工作文件夹中的XML有不同的编码,根据不同的编码,我必须为反序列化方法使用相应的“Encoding.GetEncoding” 这是我代码的一部分: var serializer = new XmlSerializer(typeof(Document)); // read the XML document Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

是否可以单独读取XML文件的第一行?我必须得到使用哪种编码的信息。我的工作文件夹中的XML有不同的编码,根据不同的编码,我必须为反序列化方法使用相应的“Encoding.GetEncoding”

这是我代码的一部分:

var serializer = new XmlSerializer(typeof(Document));
// read the XML document 
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

var encoding_windows = Encoding.GetEncoding("Windows-1252");
var encoding_utf = Encoding.GetEncoding("utf-8");
var sr = new StreamReader(current_file, encoding_windows, true);
var reader = XmlReader.Create(sr);
// restore the object's state using the deserialize method
var i = (Document)serializer.Deserialize(reader);

您可以使用普通文件读取

using System.Linq;   

string line1 = File.ReadLines("MyFile.xml").First()

并使用XML中的
line1
来执行您的操作

XmlReader,这样就不需要第一行了。所以您可以使用sr.ReadLine()跳过代码中的第一行;在创建XmlReader之前添加此行。