public function testSimple() { $implementation = new DomImplementation(); $type = $implementation->createDocumentType('html', '-//W3C//DTD XHTML 1.0 Strict//EN', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); $document = $implementation->createDocument('http://www.w3.org/1999/xhtml', 'html', $type); $html = $document->documentElement; $head = $html->addElement('head'); $head->addElement('title')->addText('Hello'); $head->addElement('meta')->setAttributes(array('name' => 'Keywords', 'content' => 'php, dom')); $body = $html->addElement('body'); $body->addElement('p')->addText('Hello World'); $this->assertEquals('Blar\\Dom\\DomDocument', get_class($document)); $this->assertXmlStringEqualsXmlFile(__DIR__ . '/DomImplementation/simple.xml', (string) $document); # var_dump($document->validate()); # die(); }
/** * @param string $namespaceURI Namespace uri. * @param string $qualifiedName Qualified name. * @param DomDocumentType $type Document type. * @return DomDocument */ public function createDocument($namespaceURI = NULL, $qualifiedName = NULL, DomDocumentType $type) { /* $document = new DomDocument(); $document->appendChild($type); $document->addElementNS($namespaceURI, $qualifiedName); return $document; */ $baseDocument = parent::createDocument($namespaceURI, $qualifiedName, $type); if (!array_key_exists('domdocument', $this->nodeClasses)) { return $baseDocument; } $extendedClassName = $this->nodeClasses['domdocument']; $extendedDocument = new $extendedClassName($baseDocument->xmlVersion, $baseDocument->xmlEncoding); $extendedDocument->loadXML($baseDocument->saveXML()); return $extendedDocument; }