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); ?>
XMLReader::readString
(PHP 5 >= 5.2.0)
XMLReader::readString — Lee el contenido del nodo actual como string
Descripción
string XMLReader::readString
( void
)
Lee el contenido del nodo actual como string.
Parámetros
Esta función no tiene parámetros.
Valores devueltos
Devuelve el contenido del nodo actual como cadena. En caso de error devuelve una cadena vacía.
Notas
Precaución
Esta función sólo esta disponible cuando PHP ha sido compilado con libxml 20620 o superior.
Ver también
- XMLReader::readOuterXML() - Recupera el XML del actual nodo, incluyendo él mismo
- XMLReader::readInnerXML() - Recupera el XML del actual nodo
- XMLReader::expand() - Devuelve una copia del actual nodo como un objeto DOM
Lea Hayes ¶
2 years ago
Michael Rusch ¶
4 years ago
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>
