XMLReader::readString()
(PHP 5 >= 5.2.0, PHP 7)
Reads the contents of the current node as a string
说明
public XMLReader::readString(void): string
Reads the contents of the current node as a string.
参数
此函数没有参数。
返回值
Returns the content of the current node as a string. Empty string on failure.
注释
Caution此函数仅在 PHP 与 libxml 20620 或以上版本编译时可用。
参见
- XMLReader::readOuterXml() Retrieve XML from current node, including itself
- XMLReader::readInnerXml() Retrieve XML from current node
- XMLReader::expand() Returns a copy of the current node as a DOM object
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); ?>
Important: When using it use -> instead of ::. You have to use :: only on static functions and then you have not to create a class object.