• xmlLoad stream总结


    1.问题 “缺少根元素”

       1).指定下encoding,文件保存的编码和xmldoc读取时用的编码不一致可能就会出问题

       2).xmlLoad 的stream必须是filestream类型,如果不是filestream类型的要指定mstream.Position = 0;或mstream.Seek(0, SeekOrigin.Begin);

             然后再编码你想要的编码:

                this.context.Request.InputStream.Position = 0;
                StreamReader readStream = new StreamReader(this.context.Request.InputStream, Encoding.GetEncoding("gb2312"));
                doc.Load(readStream);

     

    post xml 文件方法:

    public static XmlDocument PostXMLTransaction(string v_strURL, XmlDocument v_objXMLDoc)
            {
                //Declare XMLResponse document
                XmlDocument XMLResponse = null;

                //Declare an HTTP-specific implementation of the WebRequest class.
                HttpWebRequest objHttpWebRequest;

                //Declare an HTTP-specific implementation of the WebResponse class
                HttpWebResponse objHttpWebResponse = null;

                //Declare a generic view of a sequence of bytes
                Stream objRequestStream = null;
                Stream objResponseStream = null;

                //Declare XMLReader
                XmlTextReader objXMLReader;

                //Creates an HttpWebRequest for the specified URL.
                objHttpWebRequest = (HttpWebRequest)WebRequest.Create(v_strURL);

                try
                {
                    //---------- Start HttpRequest

                    //Set HttpWebRequest properties
                    byte[] bytes;
                    bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(v_objXMLDoc.InnerXml);
                    objHttpWebRequest.Method = "POST";
                    objHttpWebRequest.ContentLength = bytes.Length;
                    objHttpWebRequest.ContentType = "text/xml; encoding='gb2312'";

                    //Get Stream object
                    objRequestStream = objHttpWebRequest.GetRequestStream();

                    //Writes a sequence of bytes to the current stream       
                    objRequestStream.Write(bytes, 0, bytes.Length);

                    //Close stream
                    objRequestStream.Close();

                    //---------- End HttpRequest

                    //Sends the HttpWebRequest, and waits for a response.
                    objHttpWebResponse = (HttpWebResponse)objHttpWebRequest.GetResponse();

                    //---------- Start HttpResponse
                    if (objHttpWebResponse.StatusCode == HttpStatusCode.OK)
                    {
                        //Get response stream
                        objResponseStream = objHttpWebResponse.GetResponseStream();

                        //Load response stream into XMLReader
                        objXMLReader = new XmlTextReader(objResponseStream);

                        //Declare XMLDocument
                        XmlDocument xmldoc = new XmlDocument();
                        xmldoc.Load(objXMLReader);

                        //Set XMLResponse object returned from XMLReader
                        XMLResponse = xmldoc;

                        //Close XMLReader
                        objXMLReader.Close();
                    }

                    //Close HttpWebResponse
                    objHttpWebResponse.Close();
                }
                catch (WebException we)
                {
                    //TODO: Add custom exception handling
                    throw new Exception(we.Message);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    //Close connections
                    objRequestStream.Close();
                    objResponseStream.Close();
                    objHttpWebResponse.Close();

                    //Release objects
                    objXMLReader = null;
                    objRequestStream = null;
                    objResponseStream = null;
                    objHttpWebResponse = null;
                    objHttpWebRequest = null;
                }

                //Return
                return XMLResponse;
            }


  • 相关阅读:
    JSOIWC2019游记
    基础网络流题单
    【题解】Luogu P2472 [SCOI2007]蜥蜴
    【题解】Luogu P2057 [SHOI2007]善意的投票
    凸包略解
    【题解】Luogu P4324 [JSOI2016]扭动的回文串
    【题解】Luogu P4054 [JSOI2009]计数问题
    kruscal重构树略解
    【题解】bzoj 4478 [Jsoi2013]侦探jyy
    【题解】4465 [Jsoi2013]游戏中的学问
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1342890.html
Copyright © 2020-2023  润新知