Funkcja PHP xml_set_notation_decl_handler()
Definicja i użycie
Funkcja xml_set_notation_decl_handler() określa funkcję wywoływana, gdy parser znajduje deklarację symbolu w dokumencie XML.
Jeśli procesor zostanie pomyślnie utworzony, funkcja zwróci wartość true; w przeciwnym razie zwróci wartość false.
Uwaga:„Deklaracja symbolu”, w języku angielskim oznaczane jako notation declaration, w niektórych dokumentach również jako „Deklaracja komentarza”.
Gramatyka
xml_set_notation_decl_handler(parser,handler)
Parametry | Opis |
---|---|
parser | Obowiązkowe. Określa używany parser XML. |
handler | Obowiązkowe. Funkcja wywoływana, gdy parser znajduje deklarację symbolu. |
Przez handler Funkcja określona przez parametry musi mieć sześć parametrów:
Parametry | Opis |
---|---|
parser | Obowiązkowe. Zmienna zawierająca XML parser wywołujący procesor. |
name | Obowiązkowe. Zmienna zawierająca nazwę encji. |
base |
Obowiązkowe. Zmienna zawierająca podstawę identyfikatora systemowego encji (system_id). Obecnie ten parametr jest zazwyczaj ustawiany na pustą ciąg. |
system_id | Obowiązkowe. Zmienna zawierająca systemowy identyfikator encji. |
public_id | Obowiązkowe. Zmienna zawierająca publiczny identyfikator encji. |
notation | Wymagane. Określa zmienną, która zawiera symbol identyfikujący typ danych encji. |
Opis
handler Parametr może być również tablicą, która zawiera odniesienia do obiektów i nazwy metod.
Przykład
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function not_decl_handler($parser,$not,$base,$sysID,$pubID) { echo "$not<br />"; echo "$sysID<br />"; echo "$pubID<BR />"; } xml_set_character_data_handler($parser,"char"); xml_set_notation_decl_handler($parser, "not_decl_handler"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("Błąd XML: %s w wierszu %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>