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 — Lit le contenu du noeud courant sous forme de chaîne
Description
string XMLReader::readString
( void
)
Lit le contenu du noeud courant sous forme de chaîne.
Liste de paramètres
Cette fonction ne contient aucun paramètre.
Valeurs de retour
Retourne le contenu du noeud courant sous forme de chaîne ou une chaîne vide si une erreur survient.
Notes
Attention
Cette fonction n'est disponible que si PHP est compilé à l'aide de la librarie libxml 20620 ou ultérieure.
Voir aussi
- XMLReader::readOuterXML() - Lit le code XML du noeud courant, y compris lui-même
- XMLReader::readInnerXML() - Lit le code XML du noeud courant
- XMLReader::expand() - Retourne une copie du noeud courant comme un noeud d'objet DOM
Lea Hayes ¶
1 year 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>
