PHP xml_set_notation_decl_handler() -funktio
Määrittely ja käyttö
xml_set_notation_decl_handler() -funktio määrittää funktion, joka kutsutaan, kun parser löytää symbolisen lausunnon XML-dokumentista.
Jos käsitin onnistuneesti luotu, tämä funktio palauttaa true, muuten false.
Huomautus:”Symbolinen lausunto”, englanniksi notation declaration, ja jotkut lähteet käyttävät myös ”Kommentti-lausunto”.
Syntaksi
xml_set_notation_decl_handler(parser,Käsittelijä)
Parametrit | Kuvaus |
---|---|
parser | Välttämätön. Määrittää käytettävän XML-parsin. |
Käsittelijä | Välttämätön. Määrittää funktion, joka kutsutaan, kun parser löytää symbolisen lausunnon. |
Joka Käsittelijä Parametrit määrittävän funktion täytyy olla kuusi parametria:
Parametrit | Kuvaus |
---|---|
parser | Välttämätön. Määrittää muuttujan, joka sisältää kutsuttavan XML-parsin. |
name | Välttämätön. Määrittää muuttujan, joka sisältää entiteetin nimen. |
base |
Välttämätön. Määrittää muuttujan, joka sisältää järjestelmätunnisteen (system_id) perustan. Nykyään tämä parametri asetetaan yleensä tyhjäksi merkkijonoksi. |
system_id | Välttämätön. Määrittää muuttujan, joka sisältää entiteetin järjestelmätunnisteet. |
public_id | Välttämätön. Määrittää muuttujan, joka sisältää entiteetin julkisen tunnisteet. |
notation | Välttämätön. Määrittää muuttujan, joka sisältää symbolin, joka tunnistaa entiteetin datatyypin. |
Kuvaus
Käsittelijä Parametrina voi olla myös taulukko, joka sisältää objektin viittauksen ja metodin nimen.
Esimerkki
<?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("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>