PHP Doku:: Legt einen Errorhandler für einen XSLT-Prozessor fest - function.xslt-set-error-handler.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationXSLTXSLT Funktionenxslt_set_error_handler

Ein Service von Reinhard Neidl - Webprogrammierung.

XSLT Funktionen

<<xslt_set_encoding

xslt_set_log>>

xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handlerLegt einen Errorhandler für einen XSLT-Prozessor fest

Beschreibung

void xslt_set_error_handler ( resource $xh , mixed $handler )

Legt eine Errorhandler-Funktion für den mittels xh übergebenen XSLT-Prozessor fest. Diese Funktion wird aufgerufen, sobald ein Fehler in der XSLT-Transformation auftritt (die Funktion wird zudem für Noticecalls verwendet).

Parameter-Liste

xh

Der Link-Identifier des XSLT-Prozessors, der mittels xslt_create() erstellt wurde.

handler

Die Benutzerfunktion benötigt vier Parameter: den XSLT-Prozessor, das Errorlevel, den Fehlercode und ein Array der Nachrichten. Die Funktion kann so dargestellt werden:

error_handler ( resource $xh , int $error_level , int $error_code , array $messages )

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 xslt_set_error_handler()-Beispiel

<?php

// Unser XSLT-Errorhandler
function xslt_error_handler($handler$errno$level$info)
{
  
// die Argumente anzeigen lassen
  
var_dump(func_get_args());
}

// XML-Content:
$xml='<?xml version="1.0"?>
<para>
 Oops, ich habe den schließenden Tag falsch geschrieben!
</pata>'
;

// XSL-Content:
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>'
;

$xh xslt_create();

xslt_set_error_handler($xh"xslt_error_handler");

echo 
xslt_process($xh'arg:/_xml''arg:/_xsl',
                  
NULL, array("/_xml" => $xml"/_xsl" => $xsl));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  [0]=>
  resource(1) of type (XSLT Processor)
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  array(6) {
    ["msgtype"]=>
    string(5) "error"
    ["code"]=>
    string(1) "2"
    ["module"]=>
    string(9) "Sablotron"
    ["URI"]=>
    string(9) "arg:/_xml"
    ["line"]=>
    string(1) "4"
    ["msg"]=>
    string(34) "XML parser error 7: mismatched tag"
  }
}

Siehe auch

  • xslt_set_object() - Sets the object in which to resolve callback functions wenn Sie eine Objektmethode als Handler verwenden wollen


2 BenutzerBeiträge:
- Beiträge aktualisieren...
jocke n0spam at selincite dot com
1.10.2002 17:20
Addition to the last note. in the array I have used array($this, "myMethod") to make it use an internal function in a class.
I reckon this is how it is meant to work (not tested)
$myObj = new MyObj()
xslt_set_error_handler_($xh, array($myObj, "myErrorMethod"));

26.08.2002 22:15
To set the error handler to the instance of an object, use the:

xslt_set_error_handler($xh, array($obj, $method))

syntax.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)