xslt — Сбой компиляции таблицы стилей API Saxon / X PHP — получите полезное сообщение об ошибке

Я использую в своем PHP Saxon / C API в качестве XSLT 2.0 Processor версии 1.0.0. Я использовал версию 0.3, которая отлично скомпилировала мои таблицы стилей. К сожалению, в 0.3 была ошибка в одной нужной мне функции, поэтому я обновился до 1.0.0. Ошибка исчезла, но теперь она не компилирует мой XSTL и говорит

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

что абсолютно не полезно. Таблица стилей включает в себя десятки файлов и является действительно сложной (в противном случае я бы использовал libxml), поэтому у меня нет ни малейшего шанса выяснить, что не так (или опубликовать это здесь) без надлежащего сообщения об ошибке.
Итак, как я могу получить сообщение об ошибке, с которым я могу работать?

Заранее спасибо!

Мой PHP-код (скорее упомянутый пример Вот):

$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"/>

1

Решение

Точная информация об ошибке должна появиться в файле журнала Apache. Также накопленные ошибки должны быть доступны через getErrorCode и getErrorMessage. Я вижу, у вас есть призывы к этому в вашем примере. Если это не появляется здесь, то я подозреваю, что это ошибка, которую стоит отправить.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]