public static string GenerateHtml(string queryAddress, string webServiceAddress) { int idx = queryAddress.IndexOf("?"); string windowTabName; if (idx == -1) { windowTabName = queryAddress; } else { windowTabName = queryAddress.Substring(0, idx); } string xsl = GenerateXsl(windowTabName); if (string.IsNullOrEmpty(xsl)) { return(null); } byte[] byteArray = Encoding.UTF8.GetBytes(xsl); MemoryStream streamXslt = new MemoryStream(byteArray); XmlReader xsltReader = XmlReader.Create(streamXslt); XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load(xsltReader); xsltReader.Close(); streamXslt.Close(); var httpClient = new Feng.Windows.Net.MyAuthHttpClient(); var s = httpClient.GetSync(webServiceAddress + queryAddress); XPathDocument xmlDoc = new XPathDocument(new MemoryStream(Encoding.UTF8.GetBytes(s))); StringWriter sw = new StringWriter(); xslt.Transform(xmlDoc, null, sw); sw.Close(); return(sw.ToString()); //ctx.Response.BufferOutput = true; //ctx.Response.Write(sw.ToString()); //// There is known problem using Response.End(), //// described in Q312629 in the inital release of .Net //// ctx.Response.End() should be used if not for the bug //ctx.ApplicationInstance.CompleteRequest(); }
public static string GenerateHtml(string queryAddress, string webServiceAddress) { int idx = queryAddress.IndexOf("?"); string windowTabName; if (idx == -1) { windowTabName = queryAddress; } else { windowTabName = queryAddress.Substring(0, idx); } string xsl = GenerateXsl(windowTabName); if (string.IsNullOrEmpty(xsl)) { return null; } byte[] byteArray = Encoding.UTF8.GetBytes(xsl); MemoryStream streamXslt = new MemoryStream(byteArray); XmlReader xsltReader = XmlReader.Create(streamXslt); XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load(xsltReader); xsltReader.Close(); streamXslt.Close(); var httpClient = new Feng.Windows.Net.MyAuthHttpClient(); var s = httpClient.GetSync(webServiceAddress + queryAddress); XPathDocument xmlDoc = new XPathDocument(new MemoryStream(Encoding.UTF8.GetBytes(s))); StringWriter sw = new StringWriter(); xslt.Transform(xmlDoc, null, sw); sw.Close(); return sw.ToString(); //ctx.Response.BufferOutput = true; //ctx.Response.Write(sw.ToString()); //// There is known problem using Response.End(), //// described in Q312629 in the inital release of .Net //// ctx.Response.End() should be used if not for the bug //ctx.ApplicationInstance.CompleteRequest(); }