當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PHP xmlwriter_write_dtd()用法及代碼示例


定義和用法

XML 是一種 mark-up 語言,用於在網絡上共享數據,XML 用於人類 read-able 和機器 read-able。 XMLWriter 擴展內部具有 libxml xmlWriter API,用於編寫/創建 XML 文檔的內容。由此生成的 XML 文檔是非緩存的和 forward-only。

這個xmlwriter_write_dtd()函數用於創建/寫入完整的 DTD 標簽。

用法

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

參數

Sr.No 參數及說明
1

writer(Mandatory)

這是 XMLWriter 類的一個對象,表示您要修改/創建的 XML 文檔。

2

name(Mandatory)

這是一個字符串值,表示文檔類型的限定名稱。

3

public_id(Optional)

這是一個字符串值,表示外部子集公共標識符。

4

system_id(Optional)

這是一個表示外部子集係統標識符的字符串值。

5

subset(Optional)

這是一個字符串值,表示 DTD 標記的內容。

返回值

此函數返回一個布爾值,成功時為 TRUE,失敗時為 FALSE。

PHP版本

這個函數最初是在 PHP 版本 5 中引入的,並且適用於所有後續版本。

示例

下麵的例子演示了xmlwriter_start_dtd()函數 -

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

這將生成以下 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>

示例

以下是麵向對象風格的此函數的示例 -

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

這將生成以下 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>

相關用法


注:本文由純淨天空篩選整理自 PHP - xmlwriter_write_dtd() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。