PHP - Função xmlwriter_write_dtd ()
Definição e Uso
XML é uma linguagem de marcação para compartilhar os dados na web, XML é tanto para leitura humana quanto para máquina. A extensão XMLWriter possui internamente a API libxml xmlWriter e é usada para escrever / criar o conteúdo de um documento XML. Os documentos XML gerados por isso não são armazenados em cache e são apenas encaminhados.
o xmlwriter_write_dtd() A função é usada para criar / gravar uma tag DTD completa.
Sintaxe
xmlwriter_start_dtd($writer, $name, $public_id, $system_id, $subset);
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 |
writer(Mandatory) Este é um objeto da classe XMLWriter que representa o documento XML que você deseja modificar / criar. |
2 |
name(Mandatory) Este é um valor de string que representa o nome qualificado do tipo de documento. |
3 |
public_id(Optional) Este é um valor de string que representa o identificador público do subconjunto externo. |
4 |
system_id(Optional) Este é um valor de string que representa o identificador do sistema de subconjunto externo. |
5 |
subset(Optional) Este é um valor de string que representa o conteúdo da tag DTD. |
Valores Retornados
Esta função retorna um valor booleano que é TRUE em caso de sucesso e FALSE em caso de falha.
Versão PHP
Esta função foi introduzida pela primeira vez no PHP Versão 5 e funciona em todas as versões posteriores.
Exemplo
O exemplo a seguir demonstra o uso do xmlwriter_start_dtd() função -
<?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);
?>
Isso irá gerar o seguinte 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>
Exemplo
A seguir está o exemplo desta função no 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();
?>
Isso irá gerar o seguinte 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>