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); } }
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); }