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 — Geçerli düğümün içeriğini bir dizge olarak okur
Açıklama
string XMLReader::readString
( void
)
Geçerli düğümün içeriğini bir dizge olarak okur.
Değiştirgeler
Bu işlevin değiştirgesi yoktur.
Dönen Değerler
Geçerli düğümün içeriğini bir dizge olarak döndürür. Başarısızlık durumunda boş dizge döner.
Notlar
Dikkat
Bu işlev sadece PHP, libxml 20620 veya sonraki bir sürüm kullanılarak derlendiği takdirde kullanılabilir.
Ayrıca Bakınız
- XMLReader::readOuterXML() - Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
- XMLReader::readInnerXML() - Geçerli düğümün içeriğini okur
- XMLReader::expand() - Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür
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>
