Disregard my other comment.
readInnerXml does not advance the cursor, so you can call it more than once. I made a mistake testing this.
(PHP 5 >= 5.2.0, PHP 7)
XMLReader::readInnerXML — Retrieve XML from current node
Reads the contents of the current node, including child nodes and markup.
This function has no parameters.
Returns the contents of the current node as a string. Empty string on failure.
This function is only available when PHP is compiled against libxml 20620 or later.