📅  最后修改于: 2023-12-03 15:03:39.984000             🧑  作者: Mango
在 PHP 中,XMLReader
类提供了一种使用 SAX(Simple API for XML)方式解析 XML 文档的方法。
readInnerXml
函数的语法如下:
public readInnerXml (): string
readInnerXml
函数用于读取当前节点的内部 XML 内容,并将其作为字符串返回。该函数在 XMLReader::ELEMENT
、XMLReader::END_ELEMENT
、XMLReader::CDATA
、XMLReader::TEXT
和 XMLReader::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::ELEMENT
、XMLReader::END_ELEMENT
、XMLReader::CDATA
、XMLReader::TEXT
或 XMLReader::COMMENT
节点之一,则该函数会抛出一个 XMLReaderException
异常。