private static Cache cache = HttpRuntime.Cache; public static XslCompiledTransform getTrans(string xslPath) { XslCompiledTransform trans = cache["XsltFile"] as XslCompiledTransform; if (trans == null) trans = new XslCompiledTransform(false); if (trans.OutputSettings == null) { lock (trans) { trans.Load(xslPath); CacheDependency cacheDepends = new CacheDependency(ComStr.strDicFile); cache.Insert("XsltFile", trans, cacheDepends); } } return trans; } /// <summary> /// 转换成HTML /// </summary> /// <param name="xslPath">xslt</param> /// <param name="srcXml">xml</param> /// <param name="aimHtml">目标文件路径</param> /// <returns></returns> public static int XmlToHtml(string xslPath, string srcXml, string aimHtml) { int result = 0; try { XPathDocument xpathDoc = new XPathDocument(srcXml); XslCompiledTransform transform = getTrans(xslPath); using (XmlTextWriter myWriter = new XmlTextWriter(aimHtml, Encoding.UTF8)) {// 生成的纯文本文件 myWriter.Formatting = Formatting.Indented; transform.Transform(xpathDoc, null, myWriter); myWriter.Close(); } result = 1; } catch (Exception ex) { result = -1; LogYa.WriteLog("OperXml.XmlToHtml", LogType.Error, string.Format("Convert {0} TO Htm; Msg:{1}", srcXml, ex.Message)); } return result; }