(PHP 5 >= 5.2.0, PHP 7, PHP 8)
XMLReader::readString — Читает содержимое текущего узла как строку
Метод читает содержимое текущего узла как строку.
Сигнатура функции не содержит параметров.
Метод возвращает содержимое текущего узла в виде строки. Метод возвращает пустую строку, если возникла ошибка.
Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.
For those who, like me, are having trouble figuring out the difference between getString() an getInnerXML(), the difference is that getString() does NOT include markup. So, for:
<foo>bar<baz>Hello, world!</baz></foo>
getString() on the <foo> node would return
bar Hello, world!
whereas getInnerXML() would return
bar<baz>Hello, world!</baz>I would like to reiterate that this does not work when compiled with versions of libxml lower than 20620. I found that it just presents a blank page.
<?php $string = $reader->readString(); ?>
I worked around this issue by adding the following helper function:
<?php
function read_string($reader) {
$node = $reader->expand();
return $node->textContent;
}
?>
And then using:
<?php $string = read_string($reader); ?>