Mit der Funktion xml_set_processing_instruction_handler() wird die Funktion angegeben, die aufgerufen werden soll, wenn der Parser in einem XML -Dokument eine Verarbeitungsanweisung (PI) findet.
Verarbeitungsanweisungen (PIS) sind in <? und?> Und enthalten ein Ziel und seine Daten.
Beispiel: In diesem Fall assoziiert der PI ein Stylesheet mit einem XML -Dokument:
<? xml Version = "1.0" coding = "utf-8"?> <? XML-Stylesheet href = "default.xsl" type = "text/xml"?> <Note> <Te> tove </ to > <from> Jani </ from > <Heading> Erinnerung </ hulding > <Body> Vergiss mich dieses Wochenende nicht! </ body > </ note >
Hinweis: Der Parameter des Handlers kann auch ein Array sein, das Objektreferenzen und Methodamen enthält.
Erstellen Sie einen XML -Parser, richten Sie einen Charakterdatenhandler ein, richten Sie einen PI -Handler (Verarbeitungsanweisung) ein und analysieren Sie das XML -Dokument (note_pi.xml):
<? Php
$ parser = xml_parser_create ( ) ;
Funktion char ( $ parser , $ data ) {
echo $ data ;
}
Funktion pi_handler ( $ parser , $ target , $ data ) {
echo "Ziel: $ target <br />" ;
echo "data: $ data <br />" ;
}
xml_set_character_data_handler ( $ parser , "char" ) ;
// PI -Handler (Verarbeitungsanweisung) festlegen
xml_set_processing_instruction_handler ( $ parser , "pi_handler" ) ;
$ fp = fopen ( "note_pi.xml" , "r" ) ;
while ( $ data = fread ( $ fp , 4096 ) ) {
xml_parse ( $ parser , $ data , feof ( $ fp ) ) oder
sterben ( Sprintf ( "XML -Fehler: %s online %d" ,
xml_error_string ( xml_get_error_code ( $ parser ) ) ,
xml_get_current_line_number ( $ parser ) ) ) ;
}
xml_parser_free ( $ parser ) ;
?>
Führen Sie die Instanz aus
xml_set_processing_instruction_handler ( Parser , Handler )
| Parameter | beschreiben |
|---|---|
| Parser | Erforderlich. Gibt den zu verwendenden XML -Parser an. |
| Handler | Erforderlich. Gibt die als Ereignishandler verwendete Funktion an. Diese Funktion muss drei Parameter akzeptieren:
|