Exemplo n.º 1
0
        public XsltRunner(string stylesheetPath)
        {
            this.StylesheetPath = stylesheetPath;

            // Save a builder for later.
            _builder = _processor.NewDocumentBuilder();

            // Handles the stylesheet compilation.
            var compiler = _processor.NewXsltCompiler();

            // Load a stylesheet at a from text reader, v9.6 doesent like using a Uri for some reason.
            compiler.BaseUri = new Uri(Path.GetFullPath(this.StylesheetPath));

            TextReader textreader = File.OpenText(stylesheetPath);

            var errorListener = new TransformerErrorListener();

            try
            {
                compiler.GetUnderlyingCompilerInfo().setErrorListener(errorListener);
                _executable = compiler.Compile(textreader);
            }
            catch (TransformerException)
            {
                this.ReportCompilerErrors(errorListener);
            }
        }
Exemplo n.º 2
0
        private void ReportCompilerErrors(TransformerErrorListener listener)
        {
            Report.Warnings(
                (pub, w) => pub.DescriptionReasonLocation(ReportGenre.XsltCompilation, $"{w.getCause()?.Message} {w?.getMessage()}", this.LocationString(w.getLocator())),
                listener.Warnings);

            Report.Warnings(
                (pub, e) => pub.DescriptionReasonLocation(ReportGenre.XsltCompilation, $"{e.getCause()?.Message} {e?.getMessage()}", this.LocationString(e.getLocator())),
                listener.Errors);

            Report.Errors(
                (pub, e) => pub.DescriptionReasonLocation(ReportGenre.XsltCompilation, $"{e.getCause()?.Message} {e?.getMessage()}", this.LocationString(e.getLocator())),
                listener.FatalErrors);
        }