// gets the result of the xslt transform - Navigator mode public static string GetXsltTransformResult(XPathNavigator macroNavigator, XPathNavigator contentNavigator, XslCompiledTransform xslt, Dictionary<string, object> parameters) { TextWriter tw = new StringWriter(); XsltArgumentList xslArgs; using (DisposableTimer.DebugDuration<macro>("Adding XSLT Extensions")) { xslArgs = AddXsltExtensions(); var lib = new library(); xslArgs.AddExtensionObject("urn:umbraco.library", lib); } // Add parameters if (parameters == null || !parameters.ContainsKey("currentPage")) { var current = contentNavigator.Clone().Select("//* [@id=" + HttpContext.Current.Items["pageID"] + "]"); xslArgs.AddParam("currentPage", string.Empty, current); } if (parameters != null) { foreach (var parameter in parameters) xslArgs.AddParam(parameter.Key, string.Empty, parameter.Value); } // Do transformation using (DisposableTimer.DebugDuration<macro>("Executing XSLT transform")) { xslt.Transform(macroNavigator, xslArgs, tw); } return TemplateUtilities.ResolveUrlsFromTextString(tw.ToString()); }
// gets the result of the xslt transform - XmlDocument mode public static string GetXsltTransformResult(XmlDocument macroXml, XslCompiledTransform xslt, Dictionary<string, object> parameters) { TextWriter tw = new StringWriter(); XsltArgumentList xslArgs; using (DisposableTimer.DebugDuration<macro>("Adding XSLT Extensions")) { xslArgs = AddXsltExtensions(); var lib = new library(); xslArgs.AddExtensionObject("urn:umbraco.library", lib); } // Add parameters if (parameters == null || !parameters.ContainsKey("currentPage")) { xslArgs.AddParam("currentPage", string.Empty, library.GetXmlNodeCurrent()); } if (parameters != null) { foreach (var parameter in parameters) xslArgs.AddParam(parameter.Key, string.Empty, parameter.Value); } // Do transformation using (DisposableTimer.DebugDuration<macro>("Executing XSLT transform")) { xslt.Transform(macroXml.CreateNavigator(), xslArgs, tw); } return TemplateUtilities.ResolveUrlsFromTextString(tw.ToString()); }
public static string GetXsltTransformResult(XmlDocument macroXML, XslCompiledTransform xslt, Dictionary<string, object> parameters) { TextWriter tw = new StringWriter(); HttpContext.Current.Trace.Write("umbracoMacro", "Before adding extensions"); XsltArgumentList xslArgs; xslArgs = AddXsltExtensions(); var lib = new library(); xslArgs.AddExtensionObject("urn:umbraco.library", lib); HttpContext.Current.Trace.Write("umbracoMacro", "After adding extensions"); // Add parameters if (parameters == null || !parameters.ContainsKey("currentPage")) { xslArgs.AddParam("currentPage", string.Empty, library.GetXmlNodeCurrent()); } if (parameters != null) { foreach (var parameter in parameters) xslArgs.AddParam(parameter.Key, string.Empty, parameter.Value); } // Do transformation HttpContext.Current.Trace.Write("umbracoMacro", "Before performing transformation"); xslt.Transform(macroXML.CreateNavigator(), xslArgs, tw); return IOHelper.ResolveUrlsFromTextString(tw.ToString()); }