Description
The following code:
<?php
$xml = <<<'XML'
<Invoice xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:sh="http://www.unece.org/cefact/nodes/StandardBusinessDocumentHeader">
</Invoice>
XML;
$newDocument = \Dom\HTMLDocument::createFromString($xml, LIBXML_HTML_NOIMPLIED | LIBXML_NOERROR);
$oldDocument = new \DOMDocument();
$oldDocument->loadXML($xml);
var_dump($newDocument->documentElement->namespaceURI, $oldDocument->documentElement->namespaceURI);
Resulted in this output:
string(28) "http://www.w3.org/1999/xhtml"
string(54) "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
But I expected this output instead:
string(54) "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
string(54) "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
Side note: Using \Dom\XmlDocument returns correct namespace.
PHP Version
PHP 8.4.20 (cli) (built: Apr 8 2026 08:16:38) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.20, Copyright (c) Zend Technologies
with Zend OPcache v8.4.20, Copyright (c), by Zend Technologies
Operating System
No response
Description
The following code:
Resulted in this output:
But I expected this output instead:
Side note: Using
\Dom\XmlDocumentreturns correct namespace.PHP Version
Operating System
No response