Benim sunucuda kaynaklarını görüntülemek için XSL dönüşümleri gerçekleştirmek olamaz HTTP kullanıcı ajanları izin için aşağıdaki kod üzerinde çalışıyorum. TransformToXML sonucu false
Çünkü ben bir sırdır değilim, ama sonuç libxml_get_errors()
boş bir dizidir. Gördüğünüz gibi, kod libxslt sürüm kimliği çıktılar ve ben sürümü 1.1.24 ile WinVista sorunu alıyorum. XSLTProcessor nesneden hataları almak için libxml_get_errors()
değil sağ işlevi mi?
Eğer XML belgeleri ile ilgilenen iseniz, http://bobberinteractive.com/index.xhtml ve ... / biçembentin / layout.xsl onları alabilirsiniz
<?php
//redirect browsers that can handle the source files.
if (strpos ( $_SERVER ['HTTP_ACCEPT'], 'application/xhtml+xml' )) {
header ( "HTTP/1.1 301 Moved Permanently" );
header ( "Location: http://" . $_SERVER ['SERVER_NAME'] . "/index.xhtml" );
header ( "Content-Type: text/text" );
echo "\nYour browser is capable of processing the <a href='/index.xhtml'> site contents on its own.";
die ();
}
//start by checking the template
$baseDir = dirname ( __FILE__ );
$xslDoc = new DOMDocument ();
if (! $xslDoc->load ( $baseDir . '/stylesheets/layout.xsl' )) {
header ( "HTTP/1.1 500 Server Error" );
header ( "Content-Type: text/plain" );
echo "\n Can't load " . $baseDir . '/stylesheets/layout.xsl';
die ();
}
//resolve the requested resource (browsers that need transformation will request the resource without the suffix)
$uri = $_SERVER ['REQUEST_URI'];
$len = strlen ( $uri );
if (1 >= $len || '/' == substr ( $uri, $len - 1 )) {
$fileName = $baseDir . "/index.xhtml"; // use 'default' document if pathname ends in '/'
} else {
$fileName = $baseDir . (1 load ( $fileName )) {
header ( "HTTP/1.1 500 Server Error" );
echo "\n Can't load " . $fileName;
die ();
}
// now start the XSL template processing
$proc = new XSLTProcessor ();
$proc->importStylesheet ( $xslDoc );
$doc = $proc->transformToXML ( $xmlDoc );
if (false === $doc) {
header ( "HTTP/1.1 500 Server Error" );
header ( "Content-Type: text/plain" );
echo "\n";
// HERE is where it gets strange: the value of $doc is false and libxml_get_errors returns 0 entries.
display_xml_errors ( libxml_get_errors() );
die ();
}
header ( "Content-Type: text/html" );
echo "\n";
echo $doc;
function display_xml_errors($errors) {
echo count ( $errors ) . " Error(s) from LibXSLT " . LIBXSLT_DOTTED_VERSION;
for($i = 0; $i level) {
case LIBXML_ERR_WARNING :
$return .= "Warning $error->code: ";
break;
case LIBXML_ERR_ERROR :
$return .= "Error $error->code: ";
break;
case LIBXML_ERR_FATAL :
$return .= "Fatal Error $error->code: ";
break;
}
$return .= trim ( $error->message ) . "\n Line: $error->line" . "\n Column: $error->column";
if ($error->file) {
$return .= "\n File: $error->file";
}
echo "$return\n\n--------------------------------------------\n\n";
}
}