Skip to content

Dom\HTMLDocument - unable to append attributes to elements. #17649

@AndrewRose

Description

@AndrewRose

Description

The following code:

<?php
$html = '<!DOCTYPE html><html><body></body></html>';
$dom = Dom\HTMLDocument::createFromString($html);

$img = $dom->createElement('img');
$attrSrc = $dom->createAttribute('src');
$attrSrc->value = 'http://test.com';
$img->appendChild($attrSrc);

$dom->querySelector('body')->appendChild($img);

echo $dom->saveHTML();

Resulted in this output:

PHP Fatal error:  Uncaught DOMException: Hierarchy Request Error in /home/andrew/htmlattrtest.php:8
Stack trace:
#0 /home/andrew/htmlattrtest.php(8): Dom\Node->appendChild()
#1 {main}
  thrown in /home/andrew/htmlattrtest.php on line 8

But I expected this output instead:

<!DOCTYPE html>
<html><body><img src="http://test.com"></body></html>

PHP Version

8.4.3

Operating System

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions