Fonction PHP xml_set_notation_decl_handler()

Définition et utilisation

La fonction xml_set_notation_decl_handler() définit la fonction appelée lorsque l'analyseur trouve une déclaration de symbole dans le document XML.

Si le gestionnaire est créé avec succès, cette fonction retourne true ; sinon, elle retourne false.

Remarque :‘Déclaration de symbole’, en anglais notation declaration, et aussi traduit par ‘Déclaration de commentaire’ dans certaines littératures.

Grammaire

xml_set_notation_decl_handler(parser,Gestionnaire)
Paramètres Description
parser Obligatoire. Définir l'analyseur XML à utiliser.
Gestionnaire Obligatoire. Fonction appelée lorsque l'analyseur trouve une déclaration de symbole.

Par Gestionnaire La fonction réglementée par les paramètres doit avoir six paramètres :

Paramètres Description
parser Obligatoire. Variable contenant l'analyseur XML appelé par le gestionnaire.
name Obligatoire. Variable contenant le nom de l'entité.
base

Obligatoire. Variable contenant la base de l'identificateur système de l'entité (system_id).

Actuellement, ce paramètre est généralement configuré comme une chaîne vide.

system_id Obligatoire. Variable contenant l'identificateur système de l'entité.
public_id Obligatoire. Variable contenant l'identificateur public de l'entité.
notation Obligatoire. Définir une variable contenant le symbole identifiant le type de données de l'entité.

Description

Gestionnaire Les paramètres peuvent également être un tableau contenant des références d'objets et des noms de méthodes.

Exemple

<?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("Erreur XML: %s à la ligne %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>