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, PHP 8)
XMLReader::readInnerXml — Извлечь XML из текущего узла
Читает содержимое текущего узла, включая дочерние узлы и разметку.
У этой функции нет параметров.
Возвращает содержимое текущего узла в виде строки. Пустая строка возвращается в случае возникновения ошибки.
Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.