0

我需要将 xml 响应保存到会话中。但我试过了,但没有。但我已将 xml 请求另存为会话它有效。我附上了工作和非工作代码。任何人都可以帮我解决这个问题。我不想将 xml 响应保存为文件。

工作代码

 String xmltest = Session["xmlreq"].ToString();

            SoapClient soap = new SoapClient();
            string prueba = soap.RequestResponseMethod("getHotelValuedAvail", xmltest);
            string tham = HttpUtility.HtmlDecode(prueba);
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(tham);
            doc.Save(Server.MapPath("hotelrs.xml"));

            XslTransform myXslTransform;
            myXslTransform = new XslTransform();
            myXslTransform.Load(Server.MapPath("hotel.xsl"));
            myXslTransform.Transform(Server.MapPath("hotelrs.xml"), Server.MapPath("transformhotels.xml"));

非工作代码

String xmltest = Session["xmlreq"].ToString();

            SoapClient soap = new SoapClient();
            string prueba = soap.RequestResponseMethod("getHotelValuedAvail", xmltest);
            string tham = HttpUtility.HtmlDecode(prueba);
            Session.Add("xmlrs", tham);
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(Session["xmlrs"].ToString());
            //doc.Save(Server.MapPath("hotelrs.xml"));

            XmlDocument trdoc = new XmlDocument();
            XslTransform myXslTransform;
            myXslTransform = new XslTransform();
            myXslTransform.Load(Server.MapPath("hotel.xsl"));
            myXslTransform.Transform(doc.InnerXml, trdoc.InnerXml);
            Session.Add("xmltrs", trdoc.InnerXml);
4

1 回答 1

0
1.Declare a variable.
2.store ur xml request data in that variable.
3.Declare another variable say (String Result).
4.Now Result="Call ur method here which will give u a xml response".
5.Session["Outcome"]=Result;
6.No need to use any XMLDocument here.

如果您想格式化您的 XML 响应,请使用 XSLT 模板。

在 aspx 页面中

 <div id="DivLoad">
     <asp:Xml ID="xmlDaynamic" runat="server" Visible="true"></asp:Xml>
 </div>

在 cs

xmlDaynamic.DocumentContent = session["outcome"];
xmlDaynamic.TransformSource = "yourxslttemplate.xslt";

希望这会帮助你。

于 2013-08-14T09:25:06.237 回答