Please note that empty tags like <span></span> will be automatically converted to the short notation <span />. This could cause trouble in some cases.
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
XMLReader::readOuterXml — Retrieve XML from current node, including itself
Reads the contents of the current node, including the node itself.
This function has no parameters.
Returns the contents of current node, including itself, as a string. Empty string on failure.
This function is only available when PHP is compiled against libxml 20620 or later.
Please note that empty tags like <span></span> will be automatically converted to the short notation <span />. This could cause trouble in some cases.
Be aware that when you extract a piece of XML from a larger XML document using the readOuterXML() function, it tries to determine the namespaces (as defined in the original XML document) that apply to the new piece, and inserts them into the appropriate tags as xmlns attributes. This can be disconcerting, but it should be a benign alteration in most cases, and I understand that it causes the new chunk of XML to be correctly formatted so it is valid in it's own right.
As far as I'm aware it's not possible to change this behaviour.