Example #1
0
        // 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());
        }
Example #2
0
        // 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());
        }
Example #3
0
        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());
        }