result, $string, $delimiter); } public function __construct() { $this->result = ''; } function EndElement($name) { $this->AddStr(""); } function GetResult() { return $this->result; } function StartDocument($xmlVersion, $xmlEncoding) { $this->AddStr("\n"); } function StartElement($name) { $this->AddStr("<$name>"); } function WriteElement($name, $value) { $this->AddStr("<$name>" . htmlspecialchars($value). ""); } } class NativeXMLWriterAdapter implements IPGXMLWriter { private $xmlWriter; public function __construct() { $this->xmlWriter = new XMLWriter(); $this->xmlWriter->openMemory(); } public function EndElement($name) { $this->xmlWriter->endElement(); } public function StartDocument($xmlVersion, $xmlEncoding) { $this->xmlWriter->startDocument($xmlVersion, $xmlEncoding); } public function StartElement($name) { $this->xmlWriter->startElement($name); } public function WriteElement($name, $value) { $this->xmlWriter->writeElement($name, $value); } public function GetResult() { return $this->xmlWriter->outputMemory(true); } } class XMLWriterFactory { public static function CreateXMLWriter() { if (class_exists('XMLWriter')) return new NativeXMLWriterAdapter(); else return new PGXMLWriter(); } } ?>