PHP - Función xmlwriter_write_dtd ()
Definición y uso
XML es un lenguaje de marcado para compartir los datos a través de la web, XML es legible tanto para humanos como para máquinas. La extensión XMLWriter tiene internamente la API libxml xmlWriter y se usa para escribir / crear el contenido de un documento XML. Los documentos XML generados por esto no se almacenan en caché y solo se reenvían.
los xmlwriter_write_dtd() La función se utiliza para crear / escribir una etiqueta DTD completa.
Sintaxis
xmlwriter_start_dtd($writer, $name, $public_id, $system_id, $subset);
Parámetros
No Señor | Descripción de parámetros |
---|---|
1 | writer(Mandatory) Este es un objeto de la clase XMLWriter que representa el documento XML que desea modificar / crear. |
2 | name(Mandatory) Este es un valor de cadena que representa el nombre calificado del tipo de documento. |
3 | public_id(Optional) Este es un valor de cadena que representa el identificador público del subconjunto externo. |
4 | system_id(Optional) Este es un valor de cadena que representa el identificador del sistema de subconjunto externo. |
5 | subset(Optional) Este es un valor de cadena que representa el contenido de la etiqueta DTD. |
Valores devueltos
Esta función devuelve un valor booleano que es VERDADERO en caso de éxito y FALSO en caso de falla.
Versión PHP
Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.
Ejemplo
El siguiente ejemplo demuestra el uso de xmlwriter_start_dtd() función -
<?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);
?>
Esto generará el siguiente documento XML:
<?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>
Ejemplo
A continuación se muestra el ejemplo de esta función en estilo orientado a objetos:
<?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();
?>
Esto generará el siguiente documento XML:
<?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>