我觉得我撞墙了。我正在开发一个使用Saxon库来执行XSLT转换的Web应用程序。该应用程序曾经是一个控制台应用程序,只是简单地将输出打印到控制台,但随后,我们决定要从网络上控制应用程序。
我编写了一个自定义TextWriter
类,该类输出到网页,并使用Console.SetOut
和Console.SetError
将我的控制台输出定向到网页。
然而,Saxon正在使用某种Java兼容性库,它似乎不受Console.SetOut
的影响,因此当我在Web上运行应用程序时,内部Saxon错误不会出现在网页上
我的问题的简短版本是:假设我调用Console.SetOut
来更改控制台文本输出的位置,但它不起作用。那么呢?
答案 0 :(得分:0)
我很惊讶Console.SetOut和Console.SetError不起作用。 Saxon on .NET使用通过使用IKVMC交叉编译到.NET的OpenJDK库,我希望输出流的映射能够使这些方法起作用。如果您认为此处存在错误,则可以在saxonica.plan.io的Saxonica支持网站上找到报告的位置,并举例说明该问题。
但是,重定向Saxon错误消息的更好方法可能是注册自己的ErrorListener。您不能直接在.NET Saxon API中执行此操作,但您可以通过从XsltTransformer获取Controller并使用javax.xml.transform.ErrorListener接口的实现调用其setErrorListener方法来完成此操作。