5.7 XMLWriter类
在现今的Web编程中,创建XML文档已经成为非常关键的一部分。通常,你需要使用XML格式导出数据。可以采用几种方式创建XML文档,比如SimpleXML方式或者具有完整功能的文档对象模型(DOM)创建方式。然而,这些方法有很多限制,有时会使API变得混乱。
PHP 6中引入了XMLWriter类,它提供了一种简单、直截了当并且容易使用的方法去创建XML文档。这一组件的API还没有开发完成,并且有可能发生变化。在http://www.php.net/xmlwriter中可以发现最新的参考信息。
代码清单5-15试图演示这一API最终是如何操作的,但这里的语法并不一定是精确的。这段代码为输出流创建了一个基本的XHTML文档。
代码清单5-15 XHTML文档示例
<?php
//实例化对象并设置对齐选项
$xml = new XMLWriter();
$xml->openURI('php://output');
$xml->setIndentString(' ');
$xml->setIndent(true);
//开始创建文档并设置DTD
$xml->startDocument('1.0', 'UTF-8');
$xml->startDtd('html','-//W3C//DTD XHTML 1.0 Strict//EN',
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd');
$xml->endDtd();
//创建HTML文档
$xml->startElement('html');
$xml->writeAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
$xml->writeAttribute('xml:lang', 'en');
$xml->writeAttribute('lang', 'en');
$xml->startElement('head');
$xml->writeElement('title', 'An example XHTML document.');
$xml->endElement();
$xml->startElement('body');
$xml->writeElement('p', 'Hello, World!');
$xml->startElement('p');
$xml->text('This paragraph contains an inline ');
$xml->startElement('a');
$xml->writeAttribute('href','http://www.example.org');
$xml->text('link.');
$xml->endElement(); //a
$xml->endElement(); //p
$xml->endElement(); //body
$xml->endElement(); //html
$xml->endDocument();
$xml->flush();
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>An example XHTML document.</title>
</head>
<body>
<p>Hello, World!</p>
<p>This paragraph contains an inline
<a href="http://www.example.org">link.</a>
</p>
</body>
</html>