Загрузить HTML-код, содержащий пространства имен с DOMDocument

У меня проблема. Я хочу загрузить фрагмент HTML с пространствами имен в DOMDocument .

 <div class="something-first"> <div class="something-child something-good another something-great"> <my:text value="huhu"> </div> </div> 

Но я не могу понять, как сохранить пространства имен. Я попробовал загрузить его с loadHTML() но HTML не имеет пространств имен, и поэтому они становятся раздеваемыми.

Я попробовал загрузить его с помощью loadXML() но это не работает ни потому, что <my:text value="huhu"> не соответствует XML.

Мне нужен метод loadHTML() который не loadXML() пространства имен или метод loadXML() который не проверяет разметку. Итак, комбинация этих двух методов.

Мой код:

 $html = '<div class="something-first"> <div class="something-child something-good another something-great"> <my:text value="huhu"> </div> </div>'; libxml_use_internal_errors(true); $domDoc = new DOMDocument(); $domDoc->formatOutput = false; $domDoc->resolveExternals = false; $domDoc->substituteEntities = false; $domDoc->strictErrorChecking = false; $domDoc->validateOnParse = false; $domDoc->loadHTML($html/*, LIBXML_NOERROR | LIBXML_NOWARNING*/); $xpath = new DOMXPath($domDoc); $xpath->registerNamespace ( 'my', 'http://www.example.com/' ); // -----> This results in zero nodes cause namespace gets stripped by loadHTML() $nodes = $xpath->query('//my:*'); var_dump($nodes); 

Есть ли способ достичь того, чего я хочу? Я был бы очень рад за любые советы.

EDIT Я открыл запрос на расширение libxml2, чтобы предоставить возможность сохранять пространства имен в HTML: https://bugzilla.gnome.org/show_bug.cgi?id=711670