no = $no; $this->name = $name; $this->role = $role; } function __toString() { return sprintf('[%d,%s,%s]', $this->no, $this->name, $this->role); } } class Employees { public $list; public function __construct() { $this->list = array(); } function __toString() { return '{' . implode(',', $this->list) . '}'; } } // create employees $employees = new Employees(); $employees->list[] = new Employee(1, 'Alan A', 'Manager'); $employees->list[] = new Employee(2, 'Brian B', 'Engineer'); $employees->list[] = new Employee(3, 'Chris C', 'Sales rep'); $employees->list[] = new Employee(4, 'Dave D', 'Intern'); // write out $wrt = new XMLWriter(); $wrt->openURI('php://output'); $wrt->setIndent(true); $wrt->startDocument(); $wrt->startElement('employees'); foreach($employees->list as $employee) { $wrt->startElement('employee'); $wrt->startAttribute('no'); $wrt->text($employee->no); $wrt->endAttribute(); $wrt->startElement('name'); $wrt->text($employee->name); $wrt->endElement(); $wrt->startElement('role'); $wrt->text($employee->role); $wrt->endElement(); $wrt->endElement(); } $wrt->endElement(); $wrt->endDocument(); ?>