• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • XMLReader::readString()

    (PHP 5 >= 5.2.0, PHP 7)

    Reads the contents of the current node as a string

    说明

    publicXMLReader::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.