📜  PHP | XMLReader readInnerXml()函数(1)

📅  最后修改于: 2023-12-03 15:03:39.984000             🧑  作者: Mango

PHP | XMLReader readInnerXml()函数

在 PHP 中,XMLReader 类提供了一种使用 SAX(Simple API for XML)方式解析 XML 文档的方法。

语法

readInnerXml 函数的语法如下:

public readInnerXml (): string
描述

readInnerXml 函数用于读取当前节点的内部 XML 内容,并将其作为字符串返回。该函数在 XMLReader::ELEMENTXMLReader::END_ELEMENTXMLReader::CDATAXMLReader::TEXTXMLReader::COMMENT 节点上均可使用,并会将读取器的指针移动到该节点的末尾。

如果当前节点不是上述节点之一,则该函数会抛出一个 XMLReaderException 异常。

参数

该函数不接收任何参数。

返回值

该函数返回当前节点的内部 XML 内容(即节点的子元素、文本和 CDATA 之间的内容)。

示例

以下示例演示了如何使用 readInnerXml 函数读取 XML 文档中指定的节点的内部内容:

$xml = '
<xml>
  <book>
    <title>PHP 7 in 7 Days</title>
    <author>John Doe</author>
    <price>19.99</price>
  </book>
  <book>
    <title>JavaScript for Beginners</title>
    <author>Jane Smith</author>
    <price>14.99</price>
  </book>
</xml>
';

$reader = new XMLReader();
$reader->xml($xml);

// 循环遍历 book 节点
while ($reader->read()) {
    if ($reader->name === 'book' && $reader->nodeType === XMLReader::ELEMENT) {
        // 读取 book 节点的子节点内容
        $bookXml = $reader->readInnerXml();
        echo $bookXml . "\n";
    }
}

以上代码将输出以下内容:

<title>PHP 7 in 7 Days</title>
<author>John Doe</author>
<price>19.99</price>

<title>JavaScript for Beginners</title>
<author>Jane Smith</author>
<price>14.99</price>
异常

如果当前节点不是 XMLReader::ELEMENTXMLReader::END_ELEMENTXMLReader::CDATAXMLReader::TEXTXMLReader::COMMENT 节点之一,则该函数会抛出一个 XMLReaderException 异常。