Συνάρτηση PHP xml_set_notation_decl_handler()

Ορισμός και χρήση

Η συνάρτηση xml_set_notation_decl_handler() ορίζει τη συνάρτηση που καλείται όταν ο αναλυτής βρίσκει την ανακοίνωση συμβολής στο έγγραφο XML.

Αν ο επεξεργαστής δημιουργηθεί επιτυχώς, η συνάρτηση θα επιστρέψει true; αλλιώς θα επιστρέψει false.

Σημείωση:“Ανακοίνωση συμβολής”, στα αγγλικά σημαίνει notation declaration και σε μερικές文献 μεταφράζεται ως “Ανακοίνωση σχολίου”.

Γραμματική

xml_set_notation_decl_handler(parser,handler)
Παράμετροι Περιγραφή
parser Απαιτείται. Ορίζει τον XML αναλυτή που θα χρησιμοποιηθεί.
handler Απαιτείται. Ορίζει τη συνάρτηση που καλείται όταν ο αναλυτής βρίσκει την ανακοίνωση συμβολής.

από handler Η συνάρτηση που ορίζεται από τις παράμετροι πρέπει να έχει έξι παράμετρος:

Παράμετροι Περιγραφή
parser Απαιτείται. Ορίζει μια μεταβλητή που περιέχει τον XML αναλυτή που καλείται από τον επεξεργαστή.
name Απαιτείται. Ορίζει τη μεταβλητή που περιέχει το όνομα του αντικειμένου.
base

Απαιτείται. Ορίζει μια μεταβλητή που περιέχει τη βάση για την ταυτότητα του συστήματος του αντικειμένου (system_id).

Σήμερα, αυτός ο παράμετρος συνήθως ορίζεται ως κενή αλφαβητική ακολουθία.

system_id Απαιτείται. Ορίζει τη μεταβλητή που περιέχει την ταυτότητα του συστήματος του αντικειμένου.
public_id Απαιτείται. Ορίζει τη μεταβλητή που περιέχει την κοινή ταυτότητα του αντικειμένου.
notation Required. Specifies a variable that contains the symbol identifying the entity data type.

Description

handler The parameter can also be an array containing object references and method names.

Example

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