La función xml_set_processing_instruction_handler() especifica la función que se llama cuando el analizador encuentra una instrucción de procesamiento en el documento XML.
Las instrucciones de procesamiento están encerradas entre delimitadores <? y ?> y contienen un objetivo con datos.
Ejemplo: En este ejemplo, las instrucciones de procesamiento asocian una hoja de estilo con un documento XML:
<?xml versión="1.0" codificación="ISO-8859-1"?> <?xml-stylesheet href="default.xsl" type="text/xml"?> <note><to>Tove</to ><from>Jani</from><heading>Recordatorio</heading><body>¡No me olvides este fin de semana!</body></note>
Si tiene éxito, la función devuelve VERDADERO. Si falla, devuelve FALSO.
xml_set_processing_instruction_handler(analizador,controlador)
parámetro | describir |
---|---|
analizador | Requerido. Especifica el analizador XML que se utilizará. |
entrenador de animales | Requerido. Especifica la función que se llamará cuando el analizador encuentre una instrucción de procesamiento. |
La función especificada por el parámetro "handler" debe tener tres parámetros:
parámetro | describir |
---|---|
analizador | Requerido. Especifica una variable que contiene el analizador XML que llama al procesador. |
objetivo | Requerido. Especifica una variable que contiene el destino de la instrucción de procesamiento. |
datos | Requerido. Especifica una variable que contiene datos de instrucciones de procesamiento. |
Nota: El parámetro del controlador también puede ser una matriz que contenga referencias de objetos y nombres de métodos.
<?php$parser=xml_parser_create();función char($parser,$datos) { echo $datos; }función pi_handler($parser, $objetivo, $datos) { echo "Objetivo: $objetivo<br />"; echo "Datos: $datos<br />"; }xml_set_character_data_handler($parser,"char");xml_set_processing_instruction_handler($parser, "pi_handler");$fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) o morir (sprintf("Error XML: %s en la línea %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>