English | 简体中文 | 繁體中文
查询

XMLReader::next()函数—用法及示例

「 将指针移动到下一个节点 」


XMLReader::next()函数用于将指针移动到下一个节点。它返回一个布尔值,表示是否成功移动到下一个节点。

使用方法如下:

bool XMLReader::next ( void )

参数:该函数没有参数。

返回值:如果成功移动到下一个节点,则返回true;如果没有下一个节点或移动失败,则返回false。

示例:

$xml = '<root>
    <book>
        <title>PHP Basics</title>
        <author>John Doe</author>
    </book>
    <book>
        <title>Advanced PHP</title>
        <author>Jane Smith</author>
    </book>
</root>';

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

while ($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'book') {
        while ($reader->read()) {
            if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'title') {
                $reader->read(); // 移动到<title>节点的文本节点
                echo "Title: " . $reader->value . "\n";
            }
            if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'author') {
                $reader->read(); // 移动到<author>节点的文本节点
                echo "Author: " . $reader->value . "\n";
            }
            if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'book') {
                break; // 结束当前<book>节点的解析
            }
        }
    }
}

在上面的示例中,我们首先创建一个XMLReader对象并将XML字符串加载到它中。然后,我们使用while循环遍历XML文档中的节点。当我们遇到节点时,我们进一步遍历其子节点和<author>,并打印它们的值。在每个节点处理完毕后,我们调用XMLReader::next()函数将指针移动到下一个节点。</p>

补充纠错
上一个函数: XMLReader::open()函数
热门PHP函数
分享链接