C# 读取XML文件时文档错误的顶层无效
我犯了这样的错误。 无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击“刷新”按钮,或稍后重试。 在按钮点击我写了这个C# 读取XML文件时文档错误的顶层无效,c#,xml,C#,Xml,我犯了这样的错误。 无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击“刷新”按钮,或稍后重试。 在按钮点击我写了这个 String strUrl = "https://secure.dev.gateway.gov.uk/submission"; HttpWebRequest req = ( HttpWebRequest )WebRequest.Create( strUrl ); req.ContentType = "text/xml"; req.Metho
String strUrl = "https://secure.dev.gateway.gov.uk/submission";
HttpWebRequest req = ( HttpWebRequest )WebRequest.Create( strUrl );
req.ContentType = "text/xml";
req.Method = "POST";
req.Accept = "text/xml";
req.PreAuthenticate = true;
req.Credentials = new NetworkCredential("189", "");
req.UseDefaultCredentials = true;
System.IO.Stream stream = req.GetRequestStream();
string strXML = GetXmlString("C:\\Documents and Settings\\com\\My Documents\\Downloads\\18march\\VatDecRequest_ValidSample v1.0.xml");
byte[] arrBytes = System.Text.ASCIIEncoding.ASCII.GetBytes( strXML );
stream.Write( arrBytes, 0, arrBytes.Length );
stream.Close();
WebResponse resp = req.GetResponse();
Stream respStream = resp.GetResponseStream();
StreamReader rdr = new StreamReader( respStream, System.Text.Encoding.ASCII );
Response.ContentType = "text/xml";
string strResponse = rdr.ReadToEnd();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(strResponse);
xmldoc.Save("C:\\test9.xml");
为什么要将文件作为字符串加载,然后用ASCII编码?为什么不直接加载二进制数据并提供服务呢?(
File.ReadAllBytes
可能是您的朋友。)
我怀疑XML文件实际上是UTF-8格式的,很可能带有无法用ASCII表示的字节顺序标记
请求和响应也是如此——在可行的情况下,只需让XML解析器处理二进制流,并找出自己的编码。我认为错误在XML文件或样式表中。你能把它们包括在你的问题中吗(如果它们不是太大的话)?你在读和写ASCII码-你检查过这是否总是正确的吗?尝试使用UTF-8编码,它覆盖ASCII,如果出现,可以处理unicode。(就我所见,第1行中的url返回Unicode)