Saxon/X PHP API 样式表编译失败 - 获取有用的错误通知

Saxon/X PHP API Stylesheet compilation failed - get useful error notice

我在 PHP 中使用 Saxon/C API 作为 XSLT 2.0 处理器版本 1.0.0。我使用了 0.3 版,它完美地编译了我的样式表。不幸的是 0.3 在我需要的一个功能上有一个错误,所以我升级到 1.0.0。错误消失了,但现在它不编译我的 XSTL 并说

net.sf.saxon.s9api.SaxonApiException : Stylesheet compilation failed: 1 error reported

这绝对没有帮助。样式表包括几十个文件并且非常复杂(否则我会使用 libxml),所以如果没有正确的错误消息,我没有丝毫机会找出问题所在(或 post 这里)。 那么,我怎样才能得到可以处理的错误消息?

提前致谢!

--

我的PHP代码(而不是提到的例子here):

$saxonProc = new \Saxon\SaxonProcessor();
$saxon = $saxonProc->newXsltProcessor();
$saxon->setSourceFromFile('source.xml');
$saxon->compileFromFile('style.xml');
$result = $saxon->transformToString();

if($result == NULL) {
    $errCount = $saxon->getExceptionCount();
    if($errCount > 0 ){
        for($i = 0; $i < $errCount; $i++) {
            $errCode = $saxon->getErrorCode(intval($i));
            $errMessage = $saxon->getErrorMessage(intval($i));
            echo 'Error: Code='.$errCode.' Message='.$errMessage;
        }
        $saxon->exceptionClear();
    }
}

echo $result;

$saxon->clearParameters();
$saxon->clearProperties();

样式表的开头:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:t="http://www.tei-c.org/ns/1.0"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   exclude-result-prefixes="t" version="2.0">
   <xsl:output method="xml" encoding="UTF-8"/>

   <xsl:include href="global-varsandparams.xsl"/>

准确的错误详细信息应该出现在 apache 日志文件中。此外,累积的错误应该可以通过 getErrorCode 和 getErrorMessage 访问。我看到你在你的例子中有调用。如果它没有出现在这里,那么我怀疑这是一个值得提交的错误。