Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取XML文件时文档错误的顶层无效_C#_Xml - Fatal编程技术网

C# 读取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

我犯了这样的错误。 无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击“刷新”按钮,或稍后重试。 在按钮点击我写了这个

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)