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 — Liest den Inhalt des aktuellen Knotens als Zeichenkette
Beschreibung
string XMLReader::readString
( void
)
Liest den Inhalt des aktuellen Knotens als Zeichenkette.
Parameter-Liste
Diese Funktion hat keine Parameter.
Rückgabewerte
Gibt den Inhalt des aktuellen Knotens als Zeichenkette zurück; im Fehlerfall eine leere Zeichenkette.
Anmerkungen
Achtung
Diese Funktion ist nur verfügbar, wenn PHP mit libxml 20620 oder später kompiliert wurde.
Siehe auch
- XMLReader::readOuterXML() - Erhalte XML des aktuellen Knotens, inklusive den Knoten selbst
- XMLReader::readInnerXML() - Erhalte XML des aktuellen Knotens
- XMLReader::expand() - Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück
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>
