/// Author: Francis A. Shanahan /// http://www.FrancisShanahan.com using System; using System.Xml; using System.Net; using System.IO; using System.Text; using System.Configuration; using System.Xml.Xsl; using System.Collections.Specialized; /// /// Simply Helper class with many useful Mashup functions /// public static class webUtility { static webUtility() { } /// /// Transforms an xml document using an XSL style sheet /// /// the XML to tranform /// The filename of the XSL file to use /// The transformed document as a string public static string DoXSLTransformation(XmlDocument myDoc, string strXsl) { return DoXSLTransformation(myDoc, strXsl, null); } public static string DoXSLTransformation(XmlDocument myDoc, string strXsl, XsltArgumentList myArgs) { // Create an XSL transformation XslCompiledTransform myProcessor = new XslCompiledTransform(); // Load the XSL document myProcessor.Load(System.Web.HttpContext.Current.Server.MapPath(strXsl)); // Create a text writer for use in the transformation StringWriter myWriter = new StringWriter(); // Transform the source XML document myProcessor.Transform(myDoc, myArgs, myWriter); // Return the result as a string return myWriter.ToString(); } /// /// Retrieves a Uri using HTTP GET and returns the results as XML /// /// Uri to retrive /// Xml document results public static XmlDocument GetUri(string strURI) { // Create a request object HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strURI); // Obtain the response from the server HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); Stream myResponseStream = myResponse.GetResponseStream(); // Load the result into an XML document XmlDocument myDoc = new XmlDocument(); myDoc.Load(myResponseStream); // return the XML document return myDoc; } // Retrieves a response from a WebRequest // that was made asynchronously public static XmlDocument GetUri(HttpWebRequest myRequest, IAsyncResult myResult) { XmlDocument myDoc; HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(myResult); StreamReader myReceiveStream = new StreamReader(myResponse.GetResponseStream()); // Create the doc and load it myDoc = new XmlDocument(); myDoc.Load(myReceiveStream); // Return the doc if (myDoc != null) { return myDoc; } else { return null; } } }