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);
?>