I have an issue with parsing XML which has utf-16 encoding but it works perfectly 
fine with utf-8.
Can any help me out on this issue?.
I get the following error :
System.Web.HttpUnhandledException' was thrown.
System.Xml.XmlException: There is no Unicode byte order mark.
Cannot switch to Unicode
XML Header:
<?xml version="1.0" encoding="utf-16"?>
<RiskAssessmentRequestValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
C# CODE BEHIND :
    rptTransformedXml.DataSource = parser.ExtractData(xml);
    rptTransformedXml.DataBind();
    public List<XmlDataExtract> ExtractData(string xml)
    {
        MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(xml));
        return ExtractData(stream);
    }
    public List<XmlDataExtract> ExtractData(Stream xmlStream)
    {
        XmlReaderSettings settings = new XmlReaderSettings
                                         {
                                             IgnoreComments = true,
                                             IgnoreWhitespace = true,
                                             CloseInput = true
                                         };
        XmlReader reader = XmlReader.Create(xmlStream, settings);
        XmlPathBuilder pathBuilder = new XmlPathBuilder(reader);
        List<XmlDataExtract> xmlDataList = new List<XmlDataExtract>();
        while (reader.Read())
        {
            if (reader.NodeType == XmlNodeType.XmlDeclaration)
                continue;
            pathBuilder.Add();
            CollectAttributeData(reader, xmlDataList, pathBuilder);
            CollectElementData(reader, xmlDataList, pathBuilder);
        }
        return xmlDataList;
    }
 
     
    