PHP - Fonction xmlwriter_write_dtd ()

Définition et utilisation

XML est un langage de balisage permettant de partager les données sur le Web, XML est à la fois lisible par l'homme et par machine. L'extension XMLWriter a en interne l'API libxml xmlWriter et est utilisée pour écrire / créer le contenu d'un document XML. Les documents XML générés par celui-ci ne sont pas mis en cache et uniquement en avant.

le xmlwriter_write_dtd() La fonction est utilisée pour créer / écrire une balise DTD complète.

Syntaxe

xmlwriter_start_dtd($writer, $name, $public_id, $system_id, $subset);

Paramètres

Sr. Non Paramètre et description
1

writer(Mandatory)

Il s'agit d'un objet de la classe XMLWriter représentant le document XML que vous souhaitez modifier / créer.

2

name(Mandatory)

Il s'agit d'une valeur de chaîne représentant le nom qualifié du type de document.

3

public_id(Optional)

Il s'agit d'une valeur de chaîne représentant l'identificateur public du sous-ensemble externe.

4

system_id(Optional)

Il s'agit d'une valeur de chaîne représentant l'identificateur système du sous-ensemble externe.

5

subset(Optional)

Il s'agit d'une valeur de chaîne représentant le contenu de la balise DTD.

Valeurs de retour

Cette fonction renvoie une valeur booléenne qui est TRUE en cas de succès et FALSE en cas d'échec.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation du xmlwriter_start_dtd() fonction -

<?php
   //Opening a writer
   $uri = "result.xml";
   $writer = xmlwriter_open_uri($uri);

   //Starting the document
   xmlwriter_start_document($writer);

   //Setting the indentation
   xmlwriter_set_indent($writer, TRUE);
   xmlwriter_set_indent_string($writer, "    ");

   $dtd = "<!DOCTYPE address [
      <!ELEMENT address (name,company,phone)>
      <!ELEMENT name (#PCDATA)>
      <!ELEMENT company (#PCDATA)>
      <!ELEMENT phone (#PCDATA)>
   ]>";

   //Creating a DTD tag
   xmlwriter_write_dtd($writer, 'test_dtd', 'pub_1001', 'sys_1001' , $dtd);

   //Starting an element
   xmlwriter_start_element($writer, 'address');

   //Starting a element tag
   xmlwriter_start_element($writer, 'name');
   
   //Adding text to the element
   xmlwriter_text($writer, 'Tanmay Patil');  
   xmlwriter_end_element($writer);
   xmlwriter_start_element($writer, 'company');
   
   //Adding text to the element
   xmlwriter_text($writer, 'TutorialsPoint');  
   xmlwriter_end_element($writer);
   xmlwriter_start_element($writer, 'phone');
   
   //Adding text to the element
   xmlwriter_text($writer, '(011) 123-4567');  
   xmlwriter_end_element($writer);

   //Ending the element
   xmlwriter_end_element($writer);

   //Ending the document
   xmlwriter_end_document($writer);
?>

Cela générera le document XML suivant -

<?xml version="1.0"?>
<!DOCTYPE test_dtd
PUBLIC "pub_1001" "sys_1001" [<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>]>
<address>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</address>

Exemple

Voici l'exemple de cette fonction dans le style orienté objet -

<?php
   //Creating an XMLWriter
   $writer = new XMLWriter();

   //Opening a writer
   $uri = "result.xml";
   $writer->openUri($uri);

   //Starting the document
   $writer->startDocument();

   //Setting the indentation on
   $writer->setIndent(TRUE);
   
   //Setting the indentation
   $writer->setIndentString("    ");
   $dtd = "<!DOCTYPE address [
      <!ELEMENT address (name,company,phone)>
      <!ELEMENT name (#PCDATA)>
      <!ELEMENT company (#PCDATA)>
      <!ELEMENT phone (#PCDATA)>
   ]>";

   //Creating a DTD tag
   $writer->writeDtd('test_dtd', 'pub_1001', 'sys_1001' , $dtd);

   //Starting an element
   $writer->startElement(address);
   $writer->startElement('name');
   
   //Adding text to the element
   $writer->text('Tanmay Patil');  
   $writer->endElement();
   $writer->startElement('company');
   
   //Adding text to the element
   $writer->text('TutorialsPoint');  
   $writer->endElement();
   $writer->startElement('phone');
   
   //Adding text to the element
   $writer->text('(011) 123-4567');  
   $writer->endElement();

   //Ending the element
   $writer->endElement();
   
   //Ending the document
   $writer->endDocument();
?>

Cela générera le document XML suivant -

<?xml version="1.0"?>
<!DOCTYPE test_dtd
PUBLIC "pub_1001" "sys_1001" [<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>]>
<address>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</address>