예제 #1
0
        public void Style(
            [ArgRequired, ArgExistingFile, ArgDescription("Full path to .xml file (mandatory)")] string xml,
            [ArgRequired, ArgExistingFile, ArgDescription("Full path to .xslt file (stylesheet) (mandatory)")] string stylesheet,
            [ArgDescription("Full path to output file (optional)")] string output)
        {
            var transformers = new List <IXsltTransformer> {
                new XslCompiledTransformer()
            };

#if SAXONSUPPORT
            transformers.Add(new SaxonTransformer());
#endif
            IXsltTransformer xsltTransformer  = new XsltTransformerSelector(transformers.ToArray());
            XsltFileProvider xsltFileProvider = null;
            try
            {
                xsltFileProvider = new XsltFileProvider(stylesheet);
            }
            catch (Exception e)
            {
                Console.WriteLine($"When loading stylesheet {stylesheet} -> {e.Message}");
                Environment.Exit(1);
            }

            try
            {
                xsltTransformer.Transform(xsltFileProvider, xml, output ?? CreateOuputFilePathFromInputFilePath(xml, "html", ""));
            }
            catch (Exception e)
            {
                Console.WriteLine($"When styling {xml} -> {e.Message}");
                Environment.Exit(1);
            }
        }
예제 #2
0
        public void StyleAll(
            [ArgRequired, ArgExistingDirectory, ArgDescription("Full path to directory containing xml files (mandatory)")] string dir,
            [ArgRequired, ArgExistingFile, ArgDescription("Full path to .xslt file (stylesheet) (mandatory)")] string stylesheet,
            [ArgExistingDirectory, ArgDescription("Full path to output directory (optional)")] string output)
        {
            var transformers = new List <IXsltTransformer> {
                new XslCompiledTransformer()
            };

#if SAXONSUPPORT
            transformers.Add(new SaxonTransformer());
#endif
            IXsltTransformer xsltTransformer  = new XsltTransformerSelector(transformers.ToArray());
            XsltFileProvider xsltFileProvider = null;
            try
            {
                xsltFileProvider = new XsltFileProvider(stylesheet);
            }
            catch (Exception e)
            {
                Console.WriteLine($"When loading stylesheet {stylesheet} -> {e.Message}");
                Environment.Exit(1);
            }

            if (string.IsNullOrEmpty(output))
            {
                output = dir;
            }

            foreach (var xml in Directory.EnumerateFiles(dir, "*.xml"))
            {
                try
                {
                    var outFile = Path.Combine(output, $"{Path.GetFileNameWithoutExtension(xml)}.html");
                    xsltTransformer.Transform(xsltFileProvider, xml, outFile);
                }
                catch (Exception e)
                {
                    Console.WriteLine($"When styling {xml} -> {e.Message}");
                    Environment.Exit(1);
                }
            }
        }